您现在的位置是:网站首页> 编程资料编程资料
ASP.NET Core扩展库ServiceStack.Redis用法介绍_实用技巧_
2023-05-24
350人已围观
简介 ASP.NET Core扩展库ServiceStack.Redis用法介绍_实用技巧_
给大家安利一款 ServiceStack.Redis 的 ASP.NET Core 扩展库,它是基于 ServiceStack.Redis.Core 开发的。 简单易用,开源免费,使用ASP.NET Core自身提供的DI容器来实现针对服务的注册和消费。直接在程序启动时注册到服务中即可完成全部配置,对于小白用户也可快速上手Redis缓存和Redis分布式缓存。
Install Package
https://www.nuget.org/packages/ServiceStack.Redis.Extension.AspNetCore
Configure
Startup.cs
Single Server
public void ConfigureServices(IServiceCollection services) { services.AddDistributedServiceStackRedisCache(options => { // default single server: 127.0.0.1:6379 // services.AddServiceStackRedisCache(); // customize single server services.AddServiceStackRedisCache(options =>{ options.SingleServer = "123456@127.0.0.1:6379"; }); } services.AddControllers(); }Read and write separation
public void ConfigureServices(IServiceCollection services) { services.AddServiceStackRedisCache(options => { options.ReadWriteServers = new[] { "192.168.1.1:6379", "123456@192.168.1.2:6379", "123456@192.168.1.3:6379", "123456@192.168.1.4:6379" }; options.ReadOnlyServers = new[] { "192.168.1.1:6379", "123456@192.168.1.3:6379" }; }); services.AddControllers(); }Load from configuration
public void ConfigureServices(IServiceCollection services) { services.AddServiceStackRedisCache(Configuration.GetSection("ServiceStackRedisOptions")); services.AddControllers(); }appsettings.Development.json
{ "ServiceStackRedisOptions": { "SingleServer": "1234546@127.0.0.1:6379" }, "Logging": { "LogLevel": { "Default": "Information", "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" } } }appsetting.json
{ "ServiceStackRedisOptions": { "ReadWriteServers": ["192.168.1.1:6379", "123456@192.168.1.2:6379", "123456@192.168.1.3:6379", "123456@192.168.1.4:6379"], "ReadOnlyServers": ["192.168.1.1:6379", "123456@192.168.1.3:6379"] }, "Logging": { "LogLevel": { "Default": "Information", "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" } }, "AllowedHosts": "*" }ServiceStack.Redis Options
public class ServiceStackRedisOptions { /// /// 单机的地址,例如:127.0.0.1:6379(默认值)。如果你只用到一个Redis服务端,那么配置此项即可。 /// public string SingleServer { get; set; } = "127.0.0.1:6379"; /// /// 读写的地址,例如:{ "192.168.1.1:6379","123456@192.168.1.2:6379","123456@192.168.1.3:6379","123456@192.168.1.4:6379" } /// public string[] ReadWriteServers { get; set; } /// /// 只读地址,例如:{ "192.168.1.1:6379","123456@192.168.1.3:6379" } /// public string[] ReadOnlyServers { get; set; } /// /// MaxWritePoolSize写的频率比读低。默认值 8 /// public int MaxWritePoolSize { get; set; } = 8; /// /// MaxReadPoolSize读的频繁比较多。默认值 12,Redis官方声明最大连接数为1W,但是连接数要控制。 /// public int MaxReadPoolSize { get; set; } = 12; /// /// 连接最大的空闲时间。默认值 60,Redis官方默认是240 /// public int IdleTimeOutSecs { get; set; } = 60; /// /// 连接超时时间,毫秒。默认值 6000 /// public int ConnectTimeout { get; set; } = 6000; /// /// 数据发送超时时间,毫秒。默认值 6000 /// public int SendTimeout { get; set; } = 6000; /// /// 数据接收超时时间,毫秒。默认值 6000 /// public int ReceiveTimeout { get; set; } = 6000; /// /// 连接池取链接的超时时间,毫秒。默认值 6000 /// public int PoolTimeout { get; set; } = 6000; /// /// 默认的数据库。默认值 0,Redis官方默认也是0 /// public long DefaultDb { get; set; } = 0; }Usage
WeatherForecastController.cs
[ApiController] [Route("[controller]")] public class WeatherForecastController : ControllerBase { private static readonly string[] Summaries = new[] { "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" }; private readonly ILogger _logger; private readonly IServiceStackRedisCache _redisCache; public WeatherForecastController(ILogger logger, IServiceStackRedisCache redisCache) { _logger = logger; this._redisCache = redisCache; } [HttpGet] public IEnumerable Get() { var array = _redisCache.Get("WeatherForecast"); if (array == null) { var rng = new Random(); array = Enumerable.Range(1, 5).Select(index => new WeatherForecast { Date = DateTime.Now.AddDays(index), TemperatureC = rng.Next(-20, 55), Summary = Summaries[rng.Next(Summaries.Length)] }).ToArray(); // Cache for 30 minutes _redisCache.Set("WeatherForecast", array, 60 * 1 * 30); } return array; } } 到此这篇关于ASP.NET Core扩展库ServiceStack.Redis用法的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持。
您可能感兴趣的文章:
相关内容
- ASP.NET Core在WebApi项目中使用MiniProfiler分析Entity Framework Core_实用技巧_
- ASP.NET Core使用MiniProfiler分析应用_实用技巧_
- ASP.Net Core基于EF6、Unitwork、Autofac实现Repository模式_实用技巧_
- ASP.NET Core快速入门教程_基础应用_
- ASP.NET Core使用NLog输出日志记录_实用技巧_
- MAUI项目中使用SnackBar与Toast通知功能_实用技巧_
- Prism区域管理器IRegionManager用法介绍_实用技巧_
- MAUI中实现构建跨平台原生控件_实用技巧_
- Xamarin渲染器移植到.NET MAUI项目中_实用技巧_
- ASP.NET Core Zero模块系统讲解_实用技巧_
