.net core Redis庫 CSRedis


由於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  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM