From 5440f0ac2f717bbd642e0dda2e36c3857b133563 Mon Sep 17 00:00:00 2001 From: feijie Date: Wed, 11 Dec 2024 10:21:55 +0800 Subject: [PATCH] =?UTF-8?q?feat(docs):=20=E6=B7=BB=E5=8A=A0Caching?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../README.EN.md | 36 +++++++++++ .../README.md | 36 +++++++++++ .../README.EN.md | 46 ++++++++++++++ .../README.md | 46 ++++++++++++++ .../README.EN.md | 44 +++++++++++++ .../README.md | 44 +++++++++++++ .../README.EN.md | 53 ++++++++++++++++ .../README.md | 53 ++++++++++++++++ .../README.EN.md | 61 +++++++++++++++++++ .../README.md | 61 +++++++++++++++++++ 10 files changed, 480 insertions(+) create mode 100644 aspnet-core/modules/caching-management/LINGYUN.Abp.CachingManagement.Application.Contracts/README.EN.md create mode 100644 aspnet-core/modules/caching-management/LINGYUN.Abp.CachingManagement.Application.Contracts/README.md create mode 100644 aspnet-core/modules/caching-management/LINGYUN.Abp.CachingManagement.Application/README.EN.md create mode 100644 aspnet-core/modules/caching-management/LINGYUN.Abp.CachingManagement.Application/README.md create mode 100644 aspnet-core/modules/caching-management/LINGYUN.Abp.CachingManagement.Domain/README.EN.md create mode 100644 aspnet-core/modules/caching-management/LINGYUN.Abp.CachingManagement.Domain/README.md create mode 100644 aspnet-core/modules/caching-management/LINGYUN.Abp.CachingManagement.HttpApi/README.EN.md create mode 100644 aspnet-core/modules/caching-management/LINGYUN.Abp.CachingManagement.HttpApi/README.md create mode 100644 aspnet-core/modules/caching-management/LINGYUN.Abp.CachingManagement.StackExchangeRedis/README.EN.md create mode 100644 aspnet-core/modules/caching-management/LINGYUN.Abp.CachingManagement.StackExchangeRedis/README.md diff --git a/aspnet-core/modules/caching-management/LINGYUN.Abp.CachingManagement.Application.Contracts/README.EN.md b/aspnet-core/modules/caching-management/LINGYUN.Abp.CachingManagement.Application.Contracts/README.EN.md new file mode 100644 index 000000000..2a78d4c1d --- /dev/null +++ b/aspnet-core/modules/caching-management/LINGYUN.Abp.CachingManagement.Application.Contracts/README.EN.md @@ -0,0 +1,36 @@ +# LINGYUN.Abp.CachingManagement.Application.Contracts + +Cache management application service contract module. + +## Interfaces + +### ICacheAppService + +Cache management application service interface, providing the following features: + +* `GetKeysAsync`: Get cache key list +* `GetValueAsync`: Get cache value +* `SetAsync`: Set cache value +* `RefreshAsync`: Refresh cache +* `RemoveAsync`: Remove cache + +## Permissions + +* AbpCachingManagement.Cache: Cache management + * AbpCachingManagement.Cache.Refresh: Refresh cache + * AbpCachingManagement.Cache.Delete: Delete cache + * AbpCachingManagement.Cache.ManageValue: Manage cache value + +## Installation + +```bash +abp add-module LINGYUN.Abp.CachingManagement +``` + +## More + +For more information, please refer to the following resources: + +* [Application Service Implementation](../LINGYUN.Abp.CachingManagement.Application/README.EN.md) +* [HTTP API](../LINGYUN.Abp.CachingManagement.HttpApi/README.EN.md) +* [Domain Layer](../LINGYUN.Abp.CachingManagement.Domain/README.EN.md) diff --git a/aspnet-core/modules/caching-management/LINGYUN.Abp.CachingManagement.Application.Contracts/README.md b/aspnet-core/modules/caching-management/LINGYUN.Abp.CachingManagement.Application.Contracts/README.md new file mode 100644 index 000000000..209caa8e8 --- /dev/null +++ b/aspnet-core/modules/caching-management/LINGYUN.Abp.CachingManagement.Application.Contracts/README.md @@ -0,0 +1,36 @@ +# LINGYUN.Abp.CachingManagement.Application.Contracts + +缓存管理应用服务契约模块。 + +## 接口 + +### ICacheAppService + +缓存管理应用服务接口,提供以下功能: + +* `GetKeysAsync`: 获取缓存键列表 +* `GetValueAsync`: 获取缓存值 +* `SetAsync`: 设置缓存值 +* `RefreshAsync`: 刷新缓存 +* `RemoveAsync`: 删除缓存 + +## 权限 + +* AbpCachingManagement.Cache:缓存管理 + * AbpCachingManagement.Cache.Refresh:刷新缓存 + * AbpCachingManagement.Cache.Delete:删除缓存 + * AbpCachingManagement.Cache.ManageValue:管理缓存值 + +## 安装 + +```bash +abp add-module LINGYUN.Abp.CachingManagement +``` + +## 更多 + +有关更多信息,请参阅以下资源: + +* [应用服务实现](../LINGYUN.Abp.CachingManagement.Application/README.md) +* [HTTP API](../LINGYUN.Abp.CachingManagement.HttpApi/README.md) +* [领域层](../LINGYUN.Abp.CachingManagement.Domain/README.md) diff --git a/aspnet-core/modules/caching-management/LINGYUN.Abp.CachingManagement.Application/README.EN.md b/aspnet-core/modules/caching-management/LINGYUN.Abp.CachingManagement.Application/README.EN.md new file mode 100644 index 000000000..1b29e7290 --- /dev/null +++ b/aspnet-core/modules/caching-management/LINGYUN.Abp.CachingManagement.Application/README.EN.md @@ -0,0 +1,46 @@ +# LINGYUN.Abp.CachingManagement.Application + +Implementation of the cache management application service module. + +## Features + +* Implements the `ICacheAppService` interface, providing basic cache management functions: + * Get cache key list + * Get cache value + * Set cache value + * Refresh cache + * Delete cache + +## Permissions + +* AbpCachingManagement.Cache: Cache management + * AbpCachingManagement.Cache.Refresh: Refresh cache + * AbpCachingManagement.Cache.Delete: Delete cache + * AbpCachingManagement.Cache.ManageValue: Manage cache value + +## Installation + +```bash +abp add-module LINGYUN.Abp.CachingManagement +``` + +## Configuration and Usage + +1. First, you need to install the corresponding cache implementation module, for example: [LINGYUN.Abp.CachingManagement.StackExchangeRedis](../LINGYUN.Abp.CachingManagement.StackExchangeRedis/README.EN.md) + +2. Add the following code in the `ConfigureServices` method of your module: + +```csharp +Configure(options => +{ + options.AddProfile(validate: true); +}); +``` + +## More + +For more information, please refer to the following resources: + +* [Application Service Contracts](../LINGYUN.Abp.CachingManagement.Application.Contracts/README.EN.md) +* [HTTP API](../LINGYUN.Abp.CachingManagement.HttpApi/README.EN.md) +* [Domain Layer](../LINGYUN.Abp.CachingManagement.Domain/README.EN.md) diff --git a/aspnet-core/modules/caching-management/LINGYUN.Abp.CachingManagement.Application/README.md b/aspnet-core/modules/caching-management/LINGYUN.Abp.CachingManagement.Application/README.md new file mode 100644 index 000000000..c2c1423de --- /dev/null +++ b/aspnet-core/modules/caching-management/LINGYUN.Abp.CachingManagement.Application/README.md @@ -0,0 +1,46 @@ +# LINGYUN.Abp.CachingManagement.Application + +缓存管理应用服务模块的实现。 + +## 功能 + +* 实现了 `ICacheAppService` 接口,提供缓存管理的基本功能: + * 获取缓存键列表 + * 获取缓存值 + * 设置缓存值 + * 刷新缓存 + * 删除缓存 + +## 权限 + +* AbpCachingManagement.Cache:缓存管理 + * AbpCachingManagement.Cache.Refresh:刷新缓存 + * AbpCachingManagement.Cache.Delete:删除缓存 + * AbpCachingManagement.Cache.ManageValue:管理缓存值 + +## 安装 + +```bash +abp add-module LINGYUN.Abp.CachingManagement +``` + +## 配置使用 + +1. 首先需要安装相应的缓存实现模块,例如:[LINGYUN.Abp.CachingManagement.StackExchangeRedis](../LINGYUN.Abp.CachingManagement.StackExchangeRedis/README.md) + +2. 在模块的 `ConfigureServices` 方法中添加以下代码: + +```csharp +Configure(options => +{ + options.AddProfile(validate: true); +}); +``` + +## 更多 + +有关更多信息,请参阅以下资源: + +* [应用服务契约](../LINGYUN.Abp.CachingManagement.Application.Contracts/README.md) +* [HTTP API](../LINGYUN.Abp.CachingManagement.HttpApi/README.md) +* [领域层](../LINGYUN.Abp.CachingManagement.Domain/README.md) diff --git a/aspnet-core/modules/caching-management/LINGYUN.Abp.CachingManagement.Domain/README.EN.md b/aspnet-core/modules/caching-management/LINGYUN.Abp.CachingManagement.Domain/README.EN.md new file mode 100644 index 000000000..604ff14d5 --- /dev/null +++ b/aspnet-core/modules/caching-management/LINGYUN.Abp.CachingManagement.Domain/README.EN.md @@ -0,0 +1,44 @@ +# LINGYUN.Abp.CachingManagement.Domain + +Domain layer implementation of the cache management module. + +## Core Interfaces + +### ICacheManager + +Cache manager interface, defining core cache management functionality: + +* `GetKeysAsync`: Get cache key list +* `GetValueAsync`: Get cache value +* `SetAsync`: Set cache value +* `RefreshAsync`: Refresh cache +* `RemoveAsync`: Remove cache + +## Domain Services + +### CacheManager + +Abstract base class for cache manager, providing basic cache management implementation. Specific cache providers (like Redis) need to inherit this class and implement the corresponding methods. + +## Installation + +```bash +abp add-module LINGYUN.Abp.CachingManagement +``` + +## Extension Development + +To support a new cache provider, you need to: + +1. Create a new project, inherit from `CacheManager` class +2. Implement all abstract methods +3. Register as implementation of `ICacheManager` (using `[Dependency(ReplaceServices = true)]`) + +## More + +For more information, please refer to the following resources: + +* [Application Service Implementation](../LINGYUN.Abp.CachingManagement.Application/README.EN.md) +* [Application Service Contracts](../LINGYUN.Abp.CachingManagement.Application.Contracts/README.EN.md) +* [HTTP API](../LINGYUN.Abp.CachingManagement.HttpApi/README.EN.md) +* [Redis Implementation](../LINGYUN.Abp.CachingManagement.StackExchangeRedis/README.EN.md) diff --git a/aspnet-core/modules/caching-management/LINGYUN.Abp.CachingManagement.Domain/README.md b/aspnet-core/modules/caching-management/LINGYUN.Abp.CachingManagement.Domain/README.md new file mode 100644 index 000000000..38c431af8 --- /dev/null +++ b/aspnet-core/modules/caching-management/LINGYUN.Abp.CachingManagement.Domain/README.md @@ -0,0 +1,44 @@ +# LINGYUN.Abp.CachingManagement.Domain + +缓存管理模块的领域层实现。 + +## 核心接口 + +### ICacheManager + +缓存管理器接口,定义了缓存管理的核心功能: + +* `GetKeysAsync`: 获取缓存键列表 +* `GetValueAsync`: 获取缓存值 +* `SetAsync`: 设置缓存值 +* `RefreshAsync`: 刷新缓存 +* `RemoveAsync`: 删除缓存 + +## 领域服务 + +### CacheManager + +缓存管理器的抽象基类,提供了基础的缓存管理实现。具体的缓存提供程序(如Redis)需要继承此类并实现相应的方法。 + +## 安装 + +```bash +abp add-module LINGYUN.Abp.CachingManagement +``` + +## 扩展开发 + +如果需要支持新的缓存提供程序,需要: + +1. 创建新的项目,继承 `CacheManager` 类 +2. 实现所有抽象方法 +3. 注册为 `ICacheManager` 的实现(使用 `[Dependency(ReplaceServices = true)]`) + +## 更多 + +有关更多信息,请参阅以下资源: + +* [应用服务实现](../LINGYUN.Abp.CachingManagement.Application/README.md) +* [应用服务契约](../LINGYUN.Abp.CachingManagement.Application.Contracts/README.md) +* [HTTP API](../LINGYUN.Abp.CachingManagement.HttpApi/README.md) +* [Redis实现](../LINGYUN.Abp.CachingManagement.StackExchangeRedis/README.md) diff --git a/aspnet-core/modules/caching-management/LINGYUN.Abp.CachingManagement.HttpApi/README.EN.md b/aspnet-core/modules/caching-management/LINGYUN.Abp.CachingManagement.HttpApi/README.EN.md new file mode 100644 index 000000000..1a56ec4ab --- /dev/null +++ b/aspnet-core/modules/caching-management/LINGYUN.Abp.CachingManagement.HttpApi/README.EN.md @@ -0,0 +1,53 @@ +# LINGYUN.Abp.CachingManagement.HttpApi + +HTTP API implementation for the cache management module. + +## API Endpoints + +### /api/caching-management/cache + +* GET `/api/caching-management/cache/keys`: Get cache key list + * Parameters: + * prefix (string, optional): Key prefix + * filter (string, optional): Filter condition + * marker (string, optional): Pagination marker + * Permission: AbpCachingManagement.Cache + +* GET `/api/caching-management/cache/{key}`: Get cache value for specified key + * Parameters: + * key (string, required): Cache key + * Permission: AbpCachingManagement.Cache + +* POST `/api/caching-management/cache`: Set cache value + * Parameters: + * key (string, required): Cache key + * value (string, required): Cache value + * absoluteExpiration (DateTime, optional): Absolute expiration time + * slidingExpiration (DateTime, optional): Sliding expiration time + * Permission: AbpCachingManagement.Cache.ManageValue + +* PUT `/api/caching-management/cache/refresh`: Refresh cache + * Parameters: + * key (string, required): Cache key + * absoluteExpiration (DateTime, optional): Absolute expiration time + * slidingExpiration (DateTime, optional): Sliding expiration time + * Permission: AbpCachingManagement.Cache.Refresh + +* DELETE `/api/caching-management/cache`: Delete cache + * Parameters: + * key (string, required): Cache key + * Permission: AbpCachingManagement.Cache.Delete + +## Installation + +```bash +abp add-module LINGYUN.Abp.CachingManagement +``` + +## More + +For more information, please refer to the following resources: + +* [Application Service Implementation](../LINGYUN.Abp.CachingManagement.Application/README.EN.md) +* [Application Service Contracts](../LINGYUN.Abp.CachingManagement.Application.Contracts/README.EN.md) +* [Domain Layer](../LINGYUN.Abp.CachingManagement.Domain/README.EN.md) diff --git a/aspnet-core/modules/caching-management/LINGYUN.Abp.CachingManagement.HttpApi/README.md b/aspnet-core/modules/caching-management/LINGYUN.Abp.CachingManagement.HttpApi/README.md new file mode 100644 index 000000000..f1ffbabd1 --- /dev/null +++ b/aspnet-core/modules/caching-management/LINGYUN.Abp.CachingManagement.HttpApi/README.md @@ -0,0 +1,53 @@ +# LINGYUN.Abp.CachingManagement.HttpApi + +缓存管理模块的 HTTP API 实现。 + +## API 接口 + +### /api/caching-management/cache + +* GET `/api/caching-management/cache/keys`: 获取缓存键列表 + * 参数: + * prefix (string, optional): 键前缀 + * filter (string, optional): 过滤条件 + * marker (string, optional): 分页标记 + * 权限:AbpCachingManagement.Cache + +* GET `/api/caching-management/cache/{key}`: 获取指定键的缓存值 + * 参数: + * key (string, required): 缓存键 + * 权限:AbpCachingManagement.Cache + +* POST `/api/caching-management/cache`: 设置缓存值 + * 参数: + * key (string, required): 缓存键 + * value (string, required): 缓存值 + * absoluteExpiration (DateTime, optional): 绝对过期时间 + * slidingExpiration (DateTime, optional): 滑动过期时间 + * 权限:AbpCachingManagement.Cache.ManageValue + +* PUT `/api/caching-management/cache/refresh`: 刷新缓存 + * 参数: + * key (string, required): 缓存键 + * absoluteExpiration (DateTime, optional): 绝对过期时间 + * slidingExpiration (DateTime, optional): 滑动过期时间 + * 权限:AbpCachingManagement.Cache.Refresh + +* DELETE `/api/caching-management/cache`: 删除缓存 + * 参数: + * key (string, required): 缓存键 + * 权限:AbpCachingManagement.Cache.Delete + +## 安装 + +```bash +abp add-module LINGYUN.Abp.CachingManagement +``` + +## 更多 + +有关更多信息,请参阅以下资源: + +* [应用服务实现](../LINGYUN.Abp.CachingManagement.Application/README.md) +* [应用服务契约](../LINGYUN.Abp.CachingManagement.Application.Contracts/README.md) +* [领域层](../LINGYUN.Abp.CachingManagement.Domain/README.md) diff --git a/aspnet-core/modules/caching-management/LINGYUN.Abp.CachingManagement.StackExchangeRedis/README.EN.md b/aspnet-core/modules/caching-management/LINGYUN.Abp.CachingManagement.StackExchangeRedis/README.EN.md new file mode 100644 index 000000000..d0ed1282c --- /dev/null +++ b/aspnet-core/modules/caching-management/LINGYUN.Abp.CachingManagement.StackExchangeRedis/README.EN.md @@ -0,0 +1,61 @@ +# LINGYUN.Abp.CachingManagement.StackExchangeRedis + +Cache management implementation module based on StackExchange.Redis. + +## Features + +* Implements the `ICacheManager` interface, providing Redis-based cache management features: + * Get cache key list (supports prefix matching and filtering) + * Get cache value + * Set cache value (supports absolute and sliding expiration) + * Refresh cache + * Delete cache + +## Installation + +```bash +abp add-module LINGYUN.Abp.CachingManagement +``` + +## Configuration and Usage + +1. First, configure the Redis connection string in `appsettings.json`: + +```json +{ + "Redis": { + "Configuration": "127.0.0.1:6379" + } +} +``` + +2. Add the following code in the `ConfigureServices` method of your module: + +```csharp +Configure(options => +{ + // Optional: Configure Redis instance name prefix + options.InstanceName = "MyApp:"; +}); + +Configure(options => +{ + // Optional: Configure cache key prefix + options.KeyPrefix = "MyApp:"; +}); +``` + +## Multi-tenancy Support + +The module has built-in multi-tenancy support, automatically isolating cache data based on the current tenant ID: +* Key format with tenant: `{InstanceName}t:{TenantId}:{KeyPrefix}:{Key}` +* Key format without tenant: `{InstanceName}c:{KeyPrefix}:{Key}` + +## More + +For more information, please refer to the following resources: + +* [Application Service Implementation](../LINGYUN.Abp.CachingManagement.Application/README.EN.md) +* [Application Service Contracts](../LINGYUN.Abp.CachingManagement.Application.Contracts/README.EN.md) +* [HTTP API](../LINGYUN.Abp.CachingManagement.HttpApi/README.EN.md) +* [Domain Layer](../LINGYUN.Abp.CachingManagement.Domain/README.EN.md) diff --git a/aspnet-core/modules/caching-management/LINGYUN.Abp.CachingManagement.StackExchangeRedis/README.md b/aspnet-core/modules/caching-management/LINGYUN.Abp.CachingManagement.StackExchangeRedis/README.md new file mode 100644 index 000000000..c246f7b62 --- /dev/null +++ b/aspnet-core/modules/caching-management/LINGYUN.Abp.CachingManagement.StackExchangeRedis/README.md @@ -0,0 +1,61 @@ +# LINGYUN.Abp.CachingManagement.StackExchangeRedis + +基于 StackExchange.Redis 的缓存管理实现模块。 + +## 功能 + +* 实现了 `ICacheManager` 接口,提供基于 Redis 的缓存管理功能: + * 获取缓存键列表(支持前缀匹配和过滤) + * 获取缓存值 + * 设置缓存值(支持绝对过期时间和滑动过期时间) + * 刷新缓存 + * 删除缓存 + +## 安装 + +```bash +abp add-module LINGYUN.Abp.CachingManagement +``` + +## 配置使用 + +1. 首先需要配置 Redis 连接字符串,在 `appsettings.json` 中添加: + +```json +{ + "Redis": { + "Configuration": "127.0.0.1:6379" + } +} +``` + +2. 在模块的 `ConfigureServices` 方法中添加以下代码: + +```csharp +Configure(options => +{ + // 可选:配置 Redis 实例名称前缀 + options.InstanceName = "MyApp:"; +}); + +Configure(options => +{ + // 可选:配置缓存键前缀 + options.KeyPrefix = "MyApp:"; +}); +``` + +## 多租户支持 + +模块内置了多租户支持,会自动根据当前租户ID来隔离缓存数据: +* 有租户时的键格式:`{InstanceName}t:{TenantId}:{KeyPrefix}:{Key}` +* 无租户时的键格式:`{InstanceName}c:{KeyPrefix}:{Key}` + +## 更多 + +有关更多信息,请参阅以下资源: + +* [应用服务实现](../LINGYUN.Abp.CachingManagement.Application/README.md) +* [应用服务契约](../LINGYUN.Abp.CachingManagement.Application.Contracts/README.md) +* [HTTP API](../LINGYUN.Abp.CachingManagement.HttpApi/README.md) +* [领域层](../LINGYUN.Abp.CachingManagement.Domain/README.md)