对于安装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的配置类,代码如下:
| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189 | public 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键的类 用于方便操作存储已经修改。