Redis在.net中的使用(2).net專案中的Redis使用
Redis在.net中的使用(2).net專案中的Redis使用
Redis官網提供了很多開源的C#客戶端:Nhiredis ,ServiceStack.Redis ,StackExchange.Redis等。其中ServiceStack.Redis應該算是比較流行的。它提供了一整套從Redis資料結構都強型別物件轉換的機制並將物件json序列化。所以這裡只介紹ServiceStack.Redis,它也是目前產品中經常使用的客戶端。
1、新建控制檯程式(略過)
2、新增ServiceStack.Redis,可以使用nuget新增,我這裡直接演示,用的以前的lib包
3、建立一個簡單的RedisCacheHelper操作類
public class RedisCacheHelper { private static readonly PooledRedisClientManager pool = null; private static readonly string[] redisHosts = null; public static int RedisMaxReadPool = int.Parse(ConfigurationManager.AppSettings["redis_max_read_pool"]); public static int RedisMaxWritePool = int.Parse(ConfigurationManager.AppSettings["redis_max_write_pool"]); static RedisCacheHelper() { var redisHostStr = ConfigurationManager.AppSettings["redis_server_session"]; if (!string.IsNullOrEmpty(redisHostStr)) { redisHosts = redisHostStr.Split(','); if (redisHosts.Length > 0) { pool = new PooledRedisClientManager(redisHosts, redisHosts, new RedisClientManagerConfig() { MaxWritePoolSize = RedisMaxWritePool, MaxReadPoolSize = RedisMaxReadPool, AutoStart = true }); } } } public static void Add<T>(string key, T value, DateTime expiry) { if (value == null) { return; } if (expiry <= DateTime.Now) { Remove(key); return; } try { if (pool != null) { using (var r = pool.GetClient()) { if (r != null) { r.SendTimeout = 1000; r.Set(key, value, expiry - DateTime.Now); } } } } catch (Exception ex) { string msg = string.Format("{0}:{1}發生異常!{2}", "cache", "儲存", key); } } public static void Add<T>(string key, T value, TimeSpan slidingExpiration) { if (value == null) { return; } if (slidingExpiration.TotalSeconds <= 0) { Remove(key); return; } try { if (pool != null) { using (var r = pool.GetClient()) { if (r != null) { r.SendTimeout = 1000; r.Set(key, value, slidingExpiration); } } } } catch (Exception ex) { string msg = string.Format("{0}:{1}發生異常!{2}", "cache", "儲存", key); } } public static T Get<T>(string key) { if (string.IsNullOrEmpty(key)) { return default(T); } T obj = default(T); try { if (pool != null) { using (var r = pool.GetClient()) { if (r != null) { r.SendTimeout = 1000; obj = r.Get<T>(key); } } } } catch (Exception ex) { string msg = string.Format("{0}:{1}發生異常!{2}", "cache", "獲取", key); } return obj; } public static void Remove(string key) { try { if (pool != null) { using (var r = pool.GetClient()) { if (r != null) { r.SendTimeout = 1000; r.Remove(key); } } } } catch (Exception ex) { string msg = string.Format("{0}:{1}發生異常!{2}", "cache", "刪除", key); } } public static bool Exists(string key) { try { if (pool != null) { using (var r = pool.GetClient()) { if (r != null) { r.SendTimeout = 1000; return r.ContainsKey(key); } } } } catch (Exception ex) { string msg = string.Format("{0}:{1}發生異常!{2}", "cache", "是否存在", key); } return false; } }4、專案配置檔案
<appSettings> <add key="SessionExpireMinutes" value="180" /> <add key="redis_server_session" value="127.0.0.1:6379" /> <add key="redis_max_read_pool" value="3" /> <add key="redis_max_write_pool" value="1" /> </appSettings>5、簡單測試,注意要保證redis服務處於啟動狀態
由龐順龍最後編輯於:4年前
內容均為作者獨立觀點,不代表八零IT人立場,如涉及侵權,請及時告知。
相關文章
- Redis在.net中的使用(5)Redis持久化Redis持久化
- Redis在.net中的使用(6)Redis併發鎖Redis
- Redis在.net中的使用(1)下載安裝RedisRedis
- Redis在.net中的使用(7)redis部署為Windows服務RedisWindows
- Redis在.net中的使用(3)簡單的主從複製Redis
- C#中使用Redis學習二 在.NET4.5中使用redis hash操作C#Redis
- Redis在.net中的使用(4)常見的集中資料結構Redis資料結構
- Redis在專案中合理使用經驗總結Redis
- Redis在遊戲業務中的使用Redis遊戲
- .Net專案中NLog的配置與使用
- Redis的安裝及在Java中的使用RedisJava
- 在.net Core中使用StackExchange.Redis 2.0Redis
- .Net使用Redis詳解之ServiceStack.RedisRedis
- redis的安裝並在java中初步使用(spring配置redis)RedisJavaSpring
- Redis 哨兵使用以及在 Laravel 中的配置RedisLaravel
- redis在排行榜中的使用總結Redis
- 使用telnet連線redisRedis
- netcore專案中IStartupFilter使用NetCoreFilter
- .Net使用Redis詳解之ServiceStack.Redis(七)Redis
- LiteDB在.NET中如何使用
- PetaPoco在.net專案中的簡單使用(儲存過程篇)儲存過程
- Redis 在 Web 專案中的應用與實踐RedisWeb
- Redis在Web專案中的應用與實踐RedisWeb
- Redis 中 BitMap 的使用場景Redis
- .NETcore使用CSRedisCore操作RedisNetCoreRedis
- windwos 使用telnet 連線 redisRedis
- 在專案中如何用Redis分散式鎖Redis分散式
- ASP.NET CORE CACHE的使用(含MemoryCache,Redis)ASP.NETRedis
- Redis 中 Keys 與 Scan 的使用Redis
- Redis中的原子操作(2)-redis中使用Lua指令碼保證命令原子性Redis指令碼
- 在 NetBeans 中打包 Maven 專案的兩種方式BeanMaven
- JWT 在專案中的實際使用JWT
- Redis 中的原子操作(3)-使用Redis實現分散式鎖Redis分散式
- .NetCore MVC中的路由(2)在路由中使用約束NetCoreMVC路由
- 在Netty使用中TLSv1.3NettyTLS
- 在asp.net handler 中 使用 sessionASP.NETSession
- Redis Stack功能介紹及redis-om-dotnet使用示例Redis
- spring boot中redis使用Spring BootRedis