引用地址:
.
.net 5.0 – 使用CSRedisCore操作redis_风神修罗使的博客-CSDN博客_csrediscore
为什么选择CSRedisCore
ServiceStack.Redis 是商业版,免费版有限制;
StackExchange.Redis 是免费版,但是内核在 .NETCore 运行有问题经常 Timeout,暂无法解决;
CSRedis于2016年开始支持.NETCore一直迭代至今,实现了低门槛、高性能,和分区高级玩法的.NETCore redis-cli SDK;
在v3.0版本更新中,CSRedis中的所有方法名称进行了调整,使其和redis-cli保持一致,如果你熟悉redis-cli的命令的话,CSRedis可以直接上手,这样学习成本就降低很多。
如何集成:引用和配置
- 引用包
1 |
|
- appsettings.json
1 2 3 4 5 6 7 8 9 10 |
|
如何集成:redis 控制台 引用方式
- 初始化
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
1 2 3 4 5 |
|
如何集成:redis webapi 引用方式
- StartUp类配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
链接字符串详解
127.0.0.1:6379,password=YourPassword,defaultDatabase=0,prefix=hr_
Parameter |
Default |
Explain |
说明 |
password |
<Empty> |
Redis server password |
Redis服务器密码 |
defaultDatabase |
0 |
Redis server database |
Redis服务器数据库 |
asyncPipeline | false | The asynchronous method automatically uses pipeline, and the 10W concurrent time is 450ms (welcome to feedback) | 异步方式自动使用管道,10W并发时间450ms(欢迎反馈) |
poolsize | 50 | Connection pool size | 连接池大小 |
idleTimeout | 20000 | idle time of elements in the connection pool(MS),suitable for connecting to remote redis server | 连接池中元素的空闲时间(MS),适合连接到远程redis服务器 |
connectTimeout | 5000 | Connection timeout(MS) | 连接超时(毫秒) |
syncTimeout | 10000 | Send / receive timeout(MS) | 发送/接收超时(毫秒) |
preheat | 5 | Preheat connections, receive values such as preheat = 5 preheat 5 connections | 预热连接,接收值,例如Preheat=5 Preheat 5 connections |
autoDispose | true | Follow system exit event to release automatically | 跟随系统退出事件自动释放 |
ssl | false | Enable encrypted transmission | 启用加密传输 |
testcluster | true | 是否尝试集群模式,阿里云、腾讯云集群需要设置此选项为false | |
tryit | 0 | Execution error, retry attempts | 执行错误,重试次数 |
name | <Empty> | Connection name, use client list command to view | 连接名称,使用client list命令查看 |
prefix |
<Empty> |
key前缀,所有方法都会附带此前缀,csredis.Set(prefix + “key”, 111); |
0、通用指令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
1、string(字符串)
- 简单操作
1 2 3 4 5 6 7 8 9 10 11 |
|
- 对整数类型进行自增,自减操作
1 2 3 4 5 6 7 |
|
- 在指定 key 的 value 末尾追加字符串
1 2 3 4 |
|
2、hash(哈希)
- #HSet、HGet、HDel方法 [只能处理一个键值对]
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
- #HGetAll、HKeys、HVals
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
- #HMSet、HMGet [HGet和HSet方法执行一次只能处理一个键值对,而HMGet和HMSet是他们的多参数版本,一次可以处理多个键值对。]
1 2 3 4 5 6 7 8 |
|
- #对散列中的值进行自增、自减操作
1 2 3 4 |
|
3、list(列表)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
4、set(无序集合)
- #对集合中的成员进行操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
- #对两个集合进行交、并、差操作
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
5、zset(sorted set:有序集合)
- 有序集合可以看作是可排序的散列,不过有序集合的val成为score分值,集合内的元素就是基于score进行排序的,score以双精度浮点数的格式存储。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|
6、Geo(经纬度)
1 2 3 4 5 6 |
|
7、事务
1 2 3 4 5 6 7 8 |
|