由於servicestack.redis收費,基於有人說StackExchange.Redis 使用會出現一些問題比如會超時,
找到了CSRedis這個庫,很強大很實用。另外有興趣的朋友還可以試試另一個支持Core的redis庫NewLife.Redis
nuget Install-Package CSRedisCore
源碼地址:https://github.com/2881099/csredis 經過了兩年的洗禮,同胞們大可放心使用。
1、增加了 CSRedisClient 現實集群與連接池管理,和 RedisHelper 靜態類快速上手
//普通模式
var
csredis =
new
CSRedis.CSRedisClient(
"127.0.0.1:6379,password=123,defaultDatabase=13,poolsize=50,ssl=false,writeBuffer=10240,prefix=key前輟"
);
//集群模式
var
csredis =
new
CSRedis.CSRedisClient(
null
,
"127.0.0.1:6371,password=123,defaultDatabase=11,poolsize=10,ssl=false,writeBuffer=10240,prefix=key前輟"
,
"127.0.0.1:6372,password=123,defaultDatabase=12,poolsize=11,ssl=false,writeBuffer=10240,prefix=key前輟"
,
"127.0.0.1:6373,password=123,defaultDatabase=13,poolsize=12,ssl=false,writeBuffer=10240,prefix=key前輟"
,
"127.0.0.1:6374,password=123,defaultDatabase=14,poolsize=13,ssl=false,writeBuffer=10240,prefix=key前輟"
);
//實現思路:根據key.GetHashCode() % 節點總數量,確定連向的節點
//也可以自定義規則(第一個參數設置)
//mvc分布式緩存注入 nuget Install-Package Caching.CSRedis
//初始化 RedisHelper
RedisHelper.Initialization(csredis,
value => Newtonsoft.Json.JsonConvert.SerializeObject(value),
deserialize: (data, type) => Newtonsoft.Json.JsonConvert.DeserializeObject(data, type));
//注冊mvc分布式緩存
services.AddSingleton<IDistributedCache>(
new
Microsoft.Extensions.Caching.Redis.CSRedisCache(RedisHelper.Instance));
//提示:CSRedis.CSRedisClient 單例模式夠用了,強烈建議使用 RedisHelper 靜態類
RedisHelper.Set(
"test1"
,
"123123"
, 60);
RedisHelper.Get(
"test1"
);
//...函數名基本與 redis-cli 的命令相同
//使用緩存殼效果
var
t1 = RedisHelper.CacheShell(
"test1"
, 10, () => Test.Select.WhereId(1).ToOne());
var
t2 = RedisHelper.CacheShell(
"test"
,
"1"
, 10, () => Test.Select.WhereId(1).ToOne());
var
t3 = RedisHelper.CacheShell(
"test"
,
new
[] {
"1"
,
"2"
}, 10, notCacheFields =>
new
[] {
(
"1"
, Test.Select.WhereId(1).ToOne()),
(
"2"
, Test.Select.WhereId(2).ToOne())
});
//清空緩存
using (var conn = RedisHelper.Instance.ClusterNodes.Values.First().GetConnection()) { conn.Client.FlushAll(); }
來源:https://www.cnblogs.com/kellynic/p/9325816.html#commentform