12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using StackExchange.Redis;
- using System.Configuration;
- using Newtonsoft.Json;
- namespace Cache
- {
- public class RedisService:ICache
- {
- private static readonly string Coonstr = ConfigurationManager.ConnectionStrings["redisconnstring"].ToString();
- private static object _locker = new Object();
- private static ConnectionMultiplexer _instance = null;
- /// <summary>
- /// 使用一个静态属性来返回已连接的实例,如下列中所示。这样,一旦 ConnectionMultiplexer 断开连接,便可以初始化新的连接实例。
- /// </summary>
- public ConnectionMultiplexer Instance
- {
- get
- {
- if (_instance == null)
- {
- lock (_locker)
- {
- if (_instance == null || !_instance.IsConnected)
- {
- _instance = ConnectionMultiplexer.Connect(Coonstr);
- }
- }
- }
- //注册如下事件
- // _instance.ConnectionFailed += MuxerConnectionFailed;
- // _instance.ConnectionRestored += MuxerConnectionRestored;
- // _instance.ErrorMessage += MuxerErrorMessage;
- // _instance.ConfigurationChanged += MuxerConfigurationChanged;
- // _instance.HashSlotMoved += MuxerHashSlotMoved;
- // _instance.InternalError += MuxerInternalError;
- return _instance;
- }
- }
- static RedisService()
- {
-
- }
- public void DeleteTable(string table)
- {
- var db = _instance.GetDatabase();
- db.KeyDelete(table);
- }
- public void Insert(string table, Object data)
- {
- var db = _instance.GetDatabase();
-
- db.StringSet(table, JsonConvert.SerializeObject(data));
- }
- public T Get<T>(string table)
- {
- var db = _instance.GetDatabase();
- var data=db.StringGet(table);
- return JsonConvert.DeserializeObject<T>(data);
- }
-
- }
- }
|