码迷,mamicode.com
首页 > 其他好文 > 详细

Redis 工具类

时间:2017-09-04 12:03:03      阅读:267      评论:0      收藏:0      [点我收藏+]

标签:store   convert   ilo   oms   long   lexer   erro   data   ons   

项目里的Redis 工具类,写下来以备后用

 1 public class RedisConnector
 2     {
 3         public class RedisParseResult<T>
 4         {
 5             public bool success;
 6             public T value;
 7         }
 8         private static string ConnectionString { get; set; }
 9         private static ConnectionMultiplexer RedisConnection { get; set; }
10 
11         public RedisConnector(string redisConnectionString)
12         {
13             ConnectionString = redisConnectionString;
14             try
15             {
16                 RedisConnection = ConnectionMultiplexer.Connect(ConnectionString);
17             }
18             catch (RedisConnectionException e)
19             {
20                 AILogger.LogError(e.Message, $"Redis server : {redisConnectionString}").Wait();
21             }
22         }
23 
24         public static void Initialize(string redisConnectionString)
25         {
26             ConnectionString = redisConnectionString;
27             try
28             {
29                 RedisConnection = ConnectionMultiplexer.Connect(ConnectionString);
30             }
31             catch (RedisConnectionException e)
32             {
33                 AILogger.LogError(e.Message, $"Redis server : {redisConnectionString}").Wait();
34             }
35         }
36         public static IDatabase RedisStore => (null != RedisConnection) ? RedisConnection.GetDatabase() : ConnectionMultiplexer.Connect(ConnectionString).GetDatabase();
37         public static ConnectionMultiplexer Redis => RedisConnection ?? ConnectionMultiplexer.Connect(ConnectionString);
38 
39         public async static Task<bool> Store(string key, string value, int expiry = 120, bool replace = false) => await RedisStore.StringSetAsync(key, value, TimeSpan.FromSeconds(expiry), replace ? When.Always : When.NotExists);
40         public async static Task<bool> Store(string key, long value, int expiry = 120, bool replace = false) => await RedisStore.StringSetAsync(key, value.ToString(), TimeSpan.FromSeconds(expiry), replace ? When.Always : When.NotExists);
41         public async static Task<bool> Store<T>(string key, T value, int expiry = 120, bool replace = false) => await RedisStore.StringSetAsync(key, JsonConvert.SerializeObject(value), TimeSpan.FromSeconds(expiry), replace ? When.Always : When.NotExists);
42 
43         public static string Get(string key) => RedisStore.StringGet(key);
44         public static RedisParseResult<T> Get<T>(string key)
45         {
46             var storedValue = RedisStore.StringGet(key);
47             if (string.IsNullOrEmpty(storedValue))
48                 return new RedisParseResult<T> { success = false };
49             else
50                 return new RedisParseResult<T> { success = true, value = JsonConvert.DeserializeObject<T>(storedValue) };
51         }
52     }

 

Redis 工具类

标签:store   convert   ilo   oms   long   lexer   erro   data   ons   

原文地址:http://www.cnblogs.com/lifuquan/p/7472635.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!