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