using System; namespace CB.Cache.Redis { /// /// 版 本 1.0 /// Copyright (c) 2016-2017 /// 创建人:赵轶 /// 日 期:2017.10.10 /// 描 述:实现Redis /// public class Redis : ICacheStrategy { /// /// 默认缓存存活期为3600秒(1小时) /// protected int _timeOut = 3600; //private static object syncObj = new object(); /// /// 设置到期相对时间[单位: 秒] /// public virtual int TimeOut { set { _timeOut = value > 0 ? value : 3600; } get { return _timeOut > 0 ? _timeOut : 3600; } } /// /// 添加指定ID的对象 /// /// 缓存键 /// 缓存对象 public void AddObject(string objId, object o) { RedisCache.Set(objId, o, DateTime.Now.AddSeconds(TimeOut)); } /// /// 添加指定ID的对象 /// /// 缓存键 /// 缓存对象 /// 到期时间,单位:秒 public void AddObject(string objId, object o, int expire) { RedisCache.Set(objId, o, DateTime.Now.AddSeconds(expire)); } /// /// 添加指定ID的对象(关联指定文件组) /// /// 缓存键 /// 缓存对象 /// 关联的文件名 public void AddObjectWithFileChange(string objId, object o, string[] files) { throw new NotImplementedException(); } /// /// 添加指定ID的对象(关联指定键值组) /// /// 缓存键 /// 缓存对象 /// 依赖键 public void AddObjectWithDepend(string objId, object o, string[] dependKey) { throw new NotImplementedException(); } /// /// 移除指定ID的对象 /// /// 缓存键 public void RemoveObject(string objId) { RedisCache.Remove(objId); } /// /// 返回指定ID的对象 /// /// 缓存键 /// public object GetObject(string objId) { return RedisCache.Get(objId); } /// /// 清空的有缓存数据, 注: 考虑效率问题,建议仅在需要时(如后台管理)使用. /// public void FlushAll() { RedisCache.RemoveAll(); } } }