stackexchange.mysql_StackExchange.Redis 之 Set集合 类型示例

///

///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;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值