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