.net core 使用 redis
个人感觉. net core 对于微软技术而言有很重要的意义 , 所以最近已有时间就想看一看关于. net core 的文章
今天我就来写一写如何在. net core 环境中使用 redis
https://redis.io/clients 这个是 redis 的客户端支持地址
看见 redis 的客户端有很多语言支持的
http://p35377rn8.bkt.clouddn.com/2018-02-09.jpg
点开 c# 看见一个非常熟悉的驱动 StackExchange
http://p35377rn8.bkt.clouddn.com/2018-02-09-02.png
只怪自己一开始选择了最熟悉的这个驱动, 其实如果选择 Servicestack 的话应该会好一点
创建 redis 工具类
https://www.nuget.org/packages/StackExchange.Redis/1.2.6
我在 nuget 中找到了这个驱动的相关说明, 发现只支持. net standard 不知道安装到. net core app 项目中会不会有什么问题, 不过没关系还好之前对. net standard 有一点点了解
其实很简单, 就是创建一个类库, 类库的类型选择. net standard 而不是. net core 的就行了
由于我用的开发工具不是 visual studio 而是 visual studio code, 所以我可以在终端里使用 dotnet cli 命令.
于是我在项目的同级补录创建了一个文件夹, cd 进去之后输入 dotnet cli 命令:
dotnet new class
稍等片刻, 在这个文件夹下就创建完成了一个类库
说明一下: 如果用 dotnet cli 创建的类库, 默认类型就是. net standard 如果用 visual studio 创建的话则需要手动选择类库类型
打开 nuget 管理工具安装 StackExchange.Redis,visual studio code 可以用 dotnet cli 命令也可以用 nuget 插件
创建一个 redis 工具类, 添加如下代码
- private static ConnectionMultiplexer redis;
- protected static ConnectionMultiplexer GetConn()
- {if (redis == null || redis.IsConnected)
- {
- redis = ConnectionMultiplexer.Connect("localhost");
- }
- return redis;
- }
然后在这个类中可以根据 api 添加自己的扩展方法, 我为了方便都是在别的项目中继承这个类, 然后调用 GetConn()获取 ConnectionMultiplexer 后根据需求操作 redis 中的数据
比如
创建 hash:
GetConn().GetDatabase().HashSet()
获取 hash:
GetConn().GetDatabase().HashGet()
执行 redis 语句:
GetConn().GetServer(GetConn().GetEndPoints()[0]).Keys(0, "weather:*");
接下来就是在自己之前的项目中 (web/console) 引用刚创建的类库,
dotnet cli:
dotnet add[选项] < PROJECT > [命令]
一般为了速度, 都是之家打开项目文件加入一行代码就可以了
类似于:
- <ItemGroup>
- <ProjectReference Include="../Models/Models.csproj" />
- </ItemGroup>
其实我对 redis 了解的还很好, 如果有大神偶遇, 请多指教:)
来源: http://www.jianshu.com/p/bd2385a8414a