csredis封装_ASP.NET Core 2.0下使用Redis——基于CSRedis实现
前几天挖了个坑,今天就来填这个坑了。关于在ASP.NET Core 2.0下使用Redis的问题,目前StackExchange.Redis已经支持.Net Core 2.0了,而微软提供的Microsoft.Extensions.Caching.Redis.Core方法,也是对StackExchange.Redis的一种官方封装,是基于StackExchange.Redis的,但是大家反映StackExchange.Redis在.Net Core下高并发容易出现死锁问题,目前没有解决办法。
本例是基于CSRedis来实现的,namespace Biz126.RedisCache
{
public class RedisHelper : CSRedis.QuickHelperBase
{
public static IConfigurationRoot Configuration { get; internal set; }
public static void InitializeConfiguration(IConfigurationRoot cfg)
{
Configuration = cfg;
string ip, pass;
if (!int.TryParse(Convert.ToString(cfg["Redis:port"]), out int port)) port = 6379;
if (!int.TryParse(Convert.ToString(cfg["Redis:poolsize"]), out int poolsize)) poolsize = 50;
if (!int.TryParse(Convert.ToString(cfg["Redis:database"]), out int database)) database = 0;
ip = Convert.ToString(cfg["Redis:ip"]);
pass = Convert.ToString(cfg["Redis:pass"]);
Name = Convert.ToString(cfg["Redis:name"]);
Instance = new CSRedis.ConnectionPool(ip, port, poolsize);
Instance.Connected += (s, o) =>
{
CSRedis.RedisClient rc = s as CSRedis.RedisClient;
if (!string.IsNullOrEmpty(pass)) rc.Auth(pass);
if (database > 0) rc.Select(database);
};
}
}
}
需要添加对Microsoft.Extensions.Configuration的引用。
在主项目下,引用该类库,打开Startup文件,把之前的构造函数换成如下所示:public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddEnvironmentVariables();
if (env.IsDevelopment())
{
// This will push telemetry data through Application Insights pipeline faster, allowing you to view results immediately.
builder.AddApplicationInsightsSettings(developerMode: true);
}
Configuration = builder.Build();
RedisHelper.InitializeConfiguration(Configuration); //Redis
}
同时之前的Configuration属性,也需要对应的修改,换成IConfigurationRoot类型,就可以了:public IConfigurationRoot Configuration { get; }
以上。
csredis封装_ASP.NET Core 2.0下使用Redis——基于CSRedis实现相关推荐
- asp.net mysql 事务_ASP.NET Core 1.0 使用 Dapper 操作 MySql(包含事务)
操作 MySql 数据库使用MySql.Data程序包(MySql 开发,其他第三方可能会有些问题). project.json 代码: { "version": "1. ...
- .Net Core 3.0下AOP试水~~
昨天躺了一下3.0的依赖注入的雷 今天顺势把AOP做了一下调整,比如自动化的AOP注入 默认的Program里面的CreateHostBuilder方法增加一行 public static IHost ...
- .NET Core 3.0之深入源码理解Kestrel的集成与应用(一)
写在前面 ASP.NET Core 的 Web 服务器默认采用Kestrel,这是一个基于libuv(一个跨平台的基于Node.js的异步I/O库)的跨平台.轻量级的Web服务器. 在开始之前,先回顾 ...
- [翻译] ASP.NET Core 3.0 的新增功能
全文翻译自微软官方文档英文版 What's new in ASP.NET Core 3.0 本文重点介绍了 ASP.NET Core 3.0 中最重要的更改,并提供相关文档的连接. Blazor Bl ...
- Entity Framework Core 2.0 特性介绍和使用指南
前言 这是.Net Core 2.0生态生态介绍的最后一篇,EF一直是我喜欢的一个ORM框架,随着版本升级EF也发展到EF6.x,Entity Framework Core是一个支持跨平台的全新版本, ...
- 在.net core 2.0中生成exe文件
.net core 2.0程序默认生成的是一个dll,需要通过dotnet命令来执行他. dotnet ConsoleApp1.dll 这种方式有点类似于java程序.本身这种方式没有什么问题,但在调 ...
- centos php.ini redis,CentOS下安装Redis及Redis的PHP扩展
1.安装Redis 1.1 如果没有安装wget,安装wgetyum install wgetwget http://download.redis.io/releases/redis-3.2.0.ta ...
- linux make编译报错 mv,Linux下安装redis
1:首先下载redis http://redis.io/download 2: 需要Linux安装gcc依赖 3:进行解压 tar -zxvf redis-3.0.0-rc2.tar.gz 4:进 ...
- 一起学ASP.NET Core 2.0学习笔记(一): CentOS下 .net core2 sdk nginx、supervisor、mysql环境搭建...
作为.neter,看到.net core 2.0的正式发布,心里是有点小激动的,迫不及待的体验了一把,发现速度确实是快了很多,其中也遇到一些小问题,所以整理了一些学习笔记: 阅读目录 环境说明 安装C ...
最新文章
- windows按照进程名称模糊搜索命令tasklist | findstr
- 无法加载 DLL“oramts.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)
- ArcGIS实验教程——实验三十七:基于ArcGIS的太阳辐射分析案例教程
- Sicily-1063
- flowable流程实例笔记(1)
- npm 全局安装node module并查看安装路径
- CCF201609试题
- Java http发送post请求
- 【转载】在回答WCF问题时,在我们的园子找到了一篇彪悍的文章
- 分布式框架的基石之远程通信协议
- OpenCV2中矩阵的归一化 normalize函数详解
- 几款引擎比较:BigWorld,Unreal,CryEngine等
- opencv与PIL处理图像视频
- J9数字论:DAO与Web3的联系
- 华硕P8H61-M+i3-3220 +GTX650
- 数据类型的划分和进制之间的转换方式(二进制,十进制,八进制,十六进制)
- windows访问共享文件夹 登录失败: 禁用当前的账户 解决方法
- wait()和sleep()的区别
- 取部门工资前三高的所有员工 -- sql 面试(三)
- 公众号、订阅号与服务号区别(微信5.0以上)