public void InsertAndRetrieveItem() { var cache = new RedisCachingProvider(); cache.Insert("MyItem", "MyContent"); var item = cache.GetItem("MyItem"); Assert.AreEqual(item, "MyContent"); }
public void ItemDoesNotExist() { var cache = new RedisCachingProvider(); var item = cache.GetItem("ItemDoesNotExist"); Assert.IsNull(item); }
public void RemoveItem() { var cache = new RedisCachingProvider(); cache.Insert("MyRemoveItem", "MyContent"); var item = cache.GetItem("MyRemoveItem"); Assert.IsNotNull(item); cache.Remove("MyRemoveItem"); item = cache.GetItem("MyRemoveItem"); Assert.IsNull(item); }
/// <summary> /// 返回哈希表key中,一个或多个给定域的值。 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="fields"></param> /// <param name="db"></param> /// <returns></returns> public IList <T> MGet <T>(string[] fields, RedisCachingProvider db = null) { var nts = new NameType[fields.Length]; for (var i = 0; i < fields.Length; i++) { nts[i] = new NameType(fields[i], i); } db = RedisCachingProvider.GetClient(db); return(db.HashGetFields <T>(_mDataKey, nts, _mDataType)); }
/// <summary> /// 删除一个key /// </summary> public void Delete(RedisCachingProvider db = null) { db = RedisCachingProvider.GetClient(db); if (_mIsSingleKey) { db.Delete((string)DataKey); } else { db.Delete(GetKeys); } }
public void NonSerializableObject() { Exception serialEx = null; try { var obj = new NonSerializableClass(); var cache = new RedisCachingProvider(); cache.Insert("MyItem1", obj); // silentMode=false on app.config } catch (SerializationException ex) { serialEx = ex; } Assert.IsNotNull(serialEx); }
public void ClearCache() { var cache = new RedisCachingProvider(); cache.Insert("MyItem1", "MyContent1"); cache.Insert("MyItem2", "MyContent2"); var item1 = cache.GetItem("MyItem1"); var item2 = cache.GetItem("MyItem2"); Assert.AreEqual(item1, "MyContent1"); Assert.AreEqual(item2, "MyContent2"); cache.Clear("Prefix", ""); item1 = cache.GetItem("MyItem1"); item2 = cache.GetItem("MyItem2"); Assert.IsNull(item1); Assert.IsNull(item2); }
/// <summary> /// 同时设置一个或多个key-value对 /// </summary> /// <param name="values">value数组</param> public void MSetValues(object[] values, RedisCachingProvider db = null) { db = RedisCachingProvider.GetClient(db); var kvs = new List <Field>(); var keys = GetKeys; var count = keys.Length > values.Length ? values.Length : keys.Length; for (var i = 0; i < count; i++) { kvs.Add(new Field { Value = values[i], Name = keys[i] }); } db.MSet(kvs.ToArray(), DataType); }
/// <summary> /// 将 key 所储存的值加上增量 increment /// </summary> /// <param name="increment">增量</param> /// <returns>执行INCR命令之后key的值</returns> public long Incrby(long increment, RedisCachingProvider db = null) { db = RedisCachingProvider.GetClient(db); return(db.Incrby((string)DataKey, increment)); }
public int Sadds <T>(List <T> members, RedisCachingProvider db = null) { db = RedisCachingProvider.GetClient(db); return(db.Sadd((string)mDataKey, members, mDataType)); }
public void CreateProviderInstance() { var cache = new RedisCachingProvider(); Assert.IsNotNull(cache); }
/// <summary> /// 设置一个key的过期时间 /// </summary> /// <param name="time">过期时间,以秒为单位</param> /// <param name="db"></param> public void Expire(long time, RedisCachingProvider db = null) { db = RedisCachingProvider.GetClient(db); db.Expire((string)DataKey, time); }
public IList <object> Get <T, T1, T2, T3, T4>(RedisCachingProvider db = null) { db = RedisCachingProvider.GetClient(db); return(db.Get(new Type[] { typeof(T), typeof(T1), typeof(T2), typeof(T3), typeof(T4) }, GetKeys, DataType)); }
/// <summary> /// 获取当前redis服务器的时间 /// </summary> /// <returns>一个包含两个字符串的列表: 第一个字符串是当前时间(以 UNIX 时间戳格式表示),而第二个字符串是当前这一秒钟已经逝去的微秒数。</returns> public List <string> Time(RedisCachingProvider db = null) { db = RedisCachingProvider.GetClient(db); return(db.Time()); }
public IList <string> Keys(RedisCachingProvider db = null) { db = RedisCachingProvider.GetClient(db); return(db.Keys((string)DataKey)); }
/// <summary> /// 随机获取一个对象 /// </summary> /// <typeparam name="T">对象类型</typeparam> /// <returns>对象</returns> public T RandKey <T>(RedisCachingProvider db = null) { db = RedisCachingProvider.GetClient(db); return(db.RandomKey <T>()); }
public int Srem <T>(T member, RedisCachingProvider db = null) { db = RedisCachingProvider.GetClient(db); return(db.Srem((string)mDataKey, member, mDataType)); }
public List <T> Smember <T>(RedisCachingProvider db = null) { db = RedisCachingProvider.GetClient(db); return(db.Smember <T>((string)mDataKey, mDataType)); }
public bool Sismember <T>(T member, RedisCachingProvider db = null) { db = RedisCachingProvider.GetClient(db); return(db.Sismember((string)mDataKey, member, mDataType)); }
public int Scard(RedisCachingProvider db = null) { db = RedisCachingProvider.GetClient(db); return(db.Scard((string)mDataKey)); }
public IList <object> Get(Type[] types, RedisCachingProvider db = null) { db = RedisCachingProvider.GetClient(db); return(db.Get(types, GetKeys, DataType)); }
/// <summary> /// 返回key所关联 /// </summary> /// <typeparam name="T">对象类型</typeparam> /// <returns>对象</returns> public T Get <T>(RedisCachingProvider db = null) { db = RedisCachingProvider.GetClient(db); return(db.Get <T>((string)DataKey, DataType)); }
public void SetItem(int index, object value) { var db = RedisCachingProvider.GetClient(null); db.SetListItem((string)mDataKey, index, value, mDataType); }
public void Clear(RedisCachingProvider db = null) { db = RedisCachingProvider.GetClient(db); db.Delete(mDataKey); }
/// <summary> /// </summary> /// <param name="db"></param> /// <returns></returns> public int TTL(RedisCachingProvider db = null) { db = RedisCachingProvider.GetClient(db); return(db.TTL((string)DataKey)); }
/// <summary> /// 设置一个对象 /// </summary> /// <param name="value">对象</param> public void Set(object value, RedisCachingProvider db = null) { db = RedisCachingProvider.GetClient(db); db.Set((string)DataKey, value, DataType); }
/// <summary> /// 检查给定 key 是否存在 /// </summary> /// <returns></returns> public bool Exists(RedisCachingProvider db = null) { db = RedisCachingProvider.GetClient(db); return(db.Exists((string)DataKey) > 0); }
/// <summary> /// 将 key 改名为 newkey (当 key 和 newkey 相同,或者 key 不存在时,返回一个错误。) /// </summary> /// <param name="value">对象</param> /// <returns></returns> public bool Rename(object value, RedisCachingProvider db = null) { db = RedisCachingProvider.GetClient(db); return(db.Rename((string)DataKey, value, DataType)); }
/// <summary> /// 设置一个对象 /// </summary> /// <param name="value">对象</param> /// <param name="seconds">EX second :设置键的过期时间为 second 秒。 SET key value EX second 效果等同于 SETEX key second value</param> /// <param name="milliseconds"> /// PX millisecond :设置键的过期时间为 millisecond 毫秒。 SET key value PX millisecond 效果等同于 PSETEX key /// millisecond value /// </param> /// <param name="ExistSet">是否只在键已经存在时,才对键进行设置操作</param> public void Set(object value, long?seconds, long?milliseconds, bool?ExistSet, RedisCachingProvider db = null) { db = RedisCachingProvider.GetClient(db); db.Set((string)DataKey, value, seconds, milliseconds, ExistSet, DataType); }
public T GetSet <T>(object value, RedisCachingProvider db = null) { db = RedisCachingProvider.GetClient(db); return(db.GetSet <T>((string)DataKey, value, DataType)); }
static InitRedis() { RedisClient = RedisCachingProvider.DefaultDB; }