diff --git a/docs/zh-Hans/Redis-Cache.md b/docs/zh-Hans/Redis-Cache.md index cb82a640d5..1c6d3caa42 100644 --- a/docs/zh-Hans/Redis-Cache.md +++ b/docs/zh-Hans/Redis-Cache.md @@ -1 +1,45 @@ -TODO... \ No newline at end of file +# Redis 缓存 + +ABP Framework [缓存系统](Caching.md) 拓展了 [ASP.NET Core 分布式缓存](https://docs.microsoft.com/zh-cn/aspnet/core/performance/caching/distributed). 因此, 标准 ASP.NET Core 分布式缓存支持的 **任何提供程序** 都可以在你的应用程序中使用,并且可以像 **微软文档** 那样进行配置. + +不过, ABP为 Redis Cache 还提供了一个集成包: [Volo.Abp.Caching.StackExchangeRedis](https://www.nuget.org/packages/Volo.Abp.Caching.StackExchangeRedis). +为何使用中这个包而不是标准的[Microsoft.Extensions.Caching.StackExchangeRedis](https://www.nuget.org/packages/Microsoft.Extensions.Caching.StackExchangeRedis/)包有两个原因. + +1. 它实现 `SetManyAsync` 和 `GetManyAsync` 方法. 这些都不是 Microsoft 缓存库的标准方法,而是由ABP框架[缓存](Caching.md)系统添加的. 当你需要通过单个方法调用设置/获取多个缓存项时,它们**显著提高了性能**. +2. 它 **简化** 了 Redis 缓存 **配置** (将在下面解释). + +> Volo.Abp.Caching.StackExchangeRedis 已经使用了 Microsoft.Extensions.Caching.StackExchangeRedis 包,但对其进行了扩展和改进. +## 安装 + +> 如果使用Redis,则此软件包已安装在应用程序启动模板中. +在项目`.csproj`的文件夹中打开命令行窗口并输入命令: + +````bash +abp add-package Volo.Abp.Caching.StackExchangeRedis +```` + +## 配置 + +Volo.Abp.Caching.StackExchangeRedis 包自动从`IConfiguration`获取Redis[配置](Configuration.md). 因此,你可以在以下位置设置配置 `appsettings.json`: + +````js +"Redis": { + "IsEnabled": "true", + "Configuration": "127.0.0.1" +} +```` +设置`IsEnabled`为可选的,如果未设置将默认视为`true`. + + +或者,你可以在[模块](Module-Development-Basics.md)的ConfigureServices方法中配置标准的[RedisCacheOptions](https://docs.microsoft.com/zh-cn/dotnet/api/microsoft.extensions.caching.stackexchangeredis.rediscacheoptions)类: + +````csharp +Configure(options => +{ + //... +}); +```` + +## 另请参阅 + +* [缓存](Caching.md) diff --git a/docs/zh-Hans/docs-nav.json b/docs/zh-Hans/docs-nav.json index d66d11b3cf..203000c6c6 100644 --- a/docs/zh-Hans/docs-nav.json +++ b/docs/zh-Hans/docs-nav.json @@ -167,7 +167,13 @@ }, { "text": "缓存", - "path": "Caching.md" + "path": "Caching.md", + "items": [ + { + "text": "Redis 缓存", + "path": "Redis-Cache.md" + } + ] }, { "text": "日志", diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs index 42a2fd72cb..fa1408e27b 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs @@ -207,7 +207,7 @@ public abstract class ProjectCreationCommandBase protected void ExtractProjectZip(ProjectBuildResult project, string outputFolder) { EventBus.PublishAsync(new ProjectCreationProgressEvent { - Message = "Extracting solution to file system" + Message = "Extracting the solution archieve" }, false); using (var templateFileStream = new MemoryStream(project.ZipContent)) @@ -403,7 +403,7 @@ public abstract class ProjectCreationCommandBase } await EventBus.PublishAsync(new ProjectCreationProgressEvent { - Message = "Creating the initial migration" + Message = "Creating the initial DB migration" }, false); await InitialMigrationCreator.CreateAsync(Path.GetDirectoryName(efCoreProjectPath), isLayeredTemplate); diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateProjectBuilder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateProjectBuilder.cs index bc071a4288..126e9bdbf9 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateProjectBuilder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/TemplateProjectBuilder.cs @@ -60,7 +60,7 @@ public class TemplateProjectBuilder : IProjectBuilder, ITransientDependency NormalizeArgs(args, templateInfo); await EventBus.PublishAsync(new ProjectCreationProgressEvent { - Message = "Fetching the solution template" + Message = "Downloading the solution template" }, false); var templateFile = await SourceCodeStore.GetAsync( @@ -127,7 +127,7 @@ public class TemplateProjectBuilder : IProjectBuilder, ITransientDependency } await EventBus.PublishAsync(new ProjectCreationProgressEvent { - Message = "Preparing the solution according to preferences" + Message = "Customizing the solution template" }, false); TemplateProjectBuildPipelineBuilder.Build(context).Execute();