Redis ASP.NET 配置链接

113 阅读3分钟

对于安装Redis后 很是不明白如何建立Redis 和 .net 的链接配置 于是查找了很多的资料

首先第一步:安装ASP.NET  NuGet 包 (ServiceStack.Redis) 安装好后 查看引用如下:

这时候 首先在 ASP.NET Web.Config中<appSettings>节点中配置如下

123456<!--Redis 配置-->``    ``<add key=``"redis_server_write" value=``"Admin2018@127.0.0.1:6379" />``    ``<add key=``"redis_server_read" value=``"Admin2018@127.0.0.1:6379" />``    ``<add key=``"redis_max_read_pool" value=``"3" />``    ``<add key=``"redis_max_write_pool" value=``"1" />``<!--Redis 配置-->

 

第二步:就开始配置链接Redis的链接了:

  1>自定义创建一个RedisCacheHelper的配置类,代码如下:

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189public class RedisCacheHelper : ConfigurationSection``    ``{``        ``//读取Redis接口``        ``private static string GetRedis = ConfigurationManager.AppSettings[``"redis_server_read"``];``        ``//读取数量``        ``private static int GetRedisNum =Convert.ToInt32(ConfigurationManager.AppSettings[``"redis_max_read_pool"``]);``        ``//写入Redis接口``        ``private static string SetRedis = ConfigurationManager.AppSettings[``"redis_server_write"``];``        ``//写入数量``        ``private static int SetRedisNum = Convert.ToInt32(ConfigurationManager.AppSettings[``"redis_max_write_pool"``]);         ``//定义连接池``        ``private static readonly PooledRedisClientManager Pool = ``null``;         ``//定义构造函数``         ``static RedisCacheHelper()``        ``{``            ``string [] GetRedisHost = GetRedis.Split(``','``);``            ``string [] SetRedisHost = SetRedis.Split(``','``);``            ``if``(GetRedisHost.Length>0&&SetRedisHost.Length>0)``            ``{``                ``Pool = ``new PooledRedisClientManager(GetRedisHost, SetRedisHost, ``new RedisClientManagerConfig()``                ``{``                    ``MaxWritePoolSize = SetRedisNum,``                    ``MaxReadPoolSize = GetRedisNum,``                    ``AutoStart = ``true``                ``});``                           ``}``                     ``}         ``/// <summary>``        ``/// 添加缓存``        ``/// </summary>``        ``/// <typeparam name="T"></typeparam>``        ``/// <param name="key"></param>``        ``/// <param name="value"></param>``        ``public static void Add<T>(``string key,List<T> value)``        ``{``            ``if (value == ``null``)``                ``return``;``            ``try``            ``{``                ``if (Pool != ``null``)``                ``{``                    ``using (``var r = Pool.GetClient())``                    ``{``                        ``if (r != ``null``)``                        ``{``                            ``r.SendTimeout = 1000;``                            ``r.Set<List<T>>(key, value);``                        ``}``                    ``}``                ``}``            ``}``            ``catch (Exception ex)``            ``{``                ``ErrorLog.WriteLog(ex);``            ``}``                     ``}         ``/// <summary>``        ``/// 查询单挑``        ``/// </summary>``        ``/// <typeparam name="T"></typeparam>``        ``/// <param name="key"></param>``        ``/// <returns></returns>``        ``public static T Get<T>(``string key)``        ``{``            ``if``(key==``null``)``                ``return default``(T);``            ``try``            ``{``                ``if (Pool != ``null``)``                ``{``                    ``using (``var r = Pool.GetClient())``                    ``{``                        ``if (r != ``null``)``                        ``{``                            ``r.SendTimeout = 1000;``                            ``return r.Get<T>(key);``                        ``}``                    ``}``                ``}``            ``}``            ``catch (Exception ex)``            ``{``                ``ErrorLog.WriteLog(ex);``            ``}``                        ``return default``(T);``                 ``}         ``/// <summary>``        ``/// 查询多条数据``        ``/// </summary>``        ``/// <typeparam name="T"></typeparam>``        ``/// <param name="key"></param>``        ``/// <returns></returns>``        ``public static List<T> GetAll<T>(``string key)``        ``{``            ``if (key == ``null``)``                ``return null``;``            ``try``            ``{``                ``if (Pool != ``null``)``                ``{``                    ``using (``var r = Pool.GetClient())``                    ``{``                        ``if (r != ``null``)``                        ``{``                            ``r.SendTimeout = 1000;``                            ``return r.Get<List<T>>(key);``                        ``}``                    ``}                 ``}``            ``}``            ``catch (Exception ex)``            ``{``                ``ErrorLog.WriteLog(ex);``            ``}``                         ``return null``;``        ``}         ``/// <summary>``        ``/// 删除指定key缓存``        ``/// </summary>``        ``/// <param name="key"></param>``        ``public static void Remove(``string key)``        ``{``            ``if (key == ``null``)``                ``return``;``            ``try``            ``{``                ``if (Pool != ``null``)``                ``{``                    ``using (``var r = Pool.GetClient())``                    ``{``                        ``if (r != ``null``)``                        ``{``                            ``r.SendTimeout = 1000;``                            ``r.Remove(key);``                        ``}``                    ``}``                ``}``            ``}``            ``catch (Exception)``            ``{``                                 ``throw``;``            ``}``        ``}         ``/// <summary>``        ``/// 判断缓存是否存在``        ``/// </summary>``        ``/// <param name="key"></param>``        ``/// <returns></returns>``        ``public static bool Exists(``string key)``        ``{``            ``if (key == ``null``)``                ``return false``;``            ``try``            ``{``                ``if (Pool != ``null``)``                ``{``                    ``using (``var r = Pool.GetClient())``                    ``{``                        ``if (r != ``null``)``                        ``{``                            ``r.SendTimeout = 1000;``                            ``return  r.ContainsKey(key);``                        ``}``                    ``}``                ``}``            ``}``            ``catch (Exception ex)``            ``{``                ``ErrorLog.WriteLog(ex);``            ``}``            ``return false``;``        ``}``    ``}

  

 在调用的时候 我们还可以在自定义一个Key键的类 用于方便操作存储已经修改。