///
///set添加单个元素///具有唯一性 比如在线人数/点赞人数/收藏人数等///
///
///
///
///
public bool SetAdd(string key, string value, TimeSpan? span = null, int db = -1)
{try{
_db=GetDatabase(db);//设置过期时间
if (span != null)
{this.KeyExpire(key, span);
}return_db.SetAdd(key, value);
}catch(Exception ex)
{return false;
}
}///
///set添加多个元素集合///
///
///
///
///
public long SetAdd(string key, List arryList, int db = -1)
{try{
_db=GetDatabase(db);
RedisValue[] valueList= arryList.Select(u =>(RedisValue)u).ToArray();return_db.SetAdd(key, valueList);
}catch(Exception)
{return 0;
}
}///
///set添加多个对象集合 序列化///
///
///
///
///
public long SetAddList(string key, IEnumerable list, int db = -1) where T : class{try{
_db=GetDatabase(db);
List listRedisValue = new List();foreach (var item inlist)
{string json =JsonConvert.SerializeObject(item);
listRedisValue.Add(json);
}return_db.SetAdd(key, listRedisValue.ToArray());
}catch(Exception)
{return 0;
}
}///
///获取set集合的长度///
///
///
///
public long SetLength(string key, int db = -1)
{try{
_db=GetDatabase(db);return_db.SetLength(key);
}catch(Exception)
{return 0;
}
}///
///检查元素是否属于Set集合///
///
///
///
///
public bool ExistsInSet(string key, string value, int db = -1)
{try{
_db=GetDatabase(db);return_db.SetContains(key, value);
}catch(Exception)
{return false;
}
}///
///根据key获取所有Set元素///
///
///
///
public IEnumerable GetMembers(string redisKey, int db = -1)
{try{
_db=GetDatabase(db);var rValue =_db.SetMembers(redisKey);return rValue.Select(ob =>ob.ToString());
}catch(Exception)
{throw;
}
}///
///根据key获取所有Set对象集合 反序列化///
///
///
///
///
public List GetAllMembers(string redisKey, int db = -1) where T : class{
List result = new List();try{
_db=GetDatabase(db);var arr =_db.SetMembers(redisKey);foreach (var item inarr)
{if (!item.IsNullOrEmpty)
{var t = JsonConvert.DeserializeObject(item);if (t != null)
{
result.Add(t);
}
}
}
}catch(Exception)
{return null;
}returnresult;
}///
///根据key随机获取Set中的1个元素 不删除该元素///可应用于中奖类的案例///
///
///
///
public string GetRandomMember(string redisKey, int db = -1)
{try{
_db=GetDatabase(db);var rValue =_db.SetRandomMember(redisKey);returnrValue.ToString();
}catch(Exception)
{throw;
}
}///
///根据key随机获取Set中的n个元素 不删除该元素///可应用于中奖类的案例///
///
///
///
///
public IEnumerable GetRandomMembers(string redisKey, long count, int db = -1)
{try{
_db=GetDatabase(db);var rValue =_db.SetRandomMembers(redisKey, count);return rValue.Select(ob =>ob.ToString());
}catch(Exception)
{throw;
}
}///
///随机删除指定key集合中的一个值,并返回这些值///可应用于抽奖类的案例///
///
///
///
public string GetRandomRemovePop(string redisKey, int db = -1)
{try{
_db=GetDatabase(db);var rValue =_db.SetPop(redisKey);returnrValue.ToString();
}catch(Exception)
{throw;
}
}///
///随机删除指定key集合中的n个值,并返回这些值///可应用于抽奖类的案例///
///
///
///
///
public IEnumerable GetRandomRemovePops(string redisKey, long count, int db = -1)
{try{
_db=GetDatabase(db);var rValue =_db.SetPop(redisKey, count);return rValue.Select(ob =>ob.ToString());
}catch(Exception)
{throw;
}
}///
///返回指定rediskey集合的交集、差集、并集///只能在同一个库内查询,跨库则不行///
///
///
///
///
public IEnumerable GetCombines(SetOperation operation, List keyList, int db = -1)
{try{
_db=GetDatabase(db);
RedisKey[] valueList= keyList.Select(u =>(RedisKey)u).ToArray();var rValue =_db.SetCombine(operation, valueList);return rValue.Select(ob =>ob.ToString());
}catch(Exception)
{throw;
}
}