1,增長操做redis
RedisCacheHelper.Instance.ZSortadd("zsortkey", "A1", 5); RedisCacheHelper.Instance.ZSortadd("zsortkey", "B1", 6); RedisCacheHelper.Instance.ZSortadd("zsortkey", "C1", 2); RedisCacheHelper.Instance.ZSortadd("zsortkey", "D1", 1); RedisCacheHelper.Instance.ZSortadd("zsortkey", "1", 9); RedisCacheHelper.Instance.ZSortadd("zsortkey", "2", 8); RedisCacheHelper.Instance.ZSortadd("zsortkey", "3", 7); RedisCacheHelper.Instance.ZSortadd("zsortkey", "4", 1);
RedisCacheHelper.Instance.ZSortIncr("zsortkey", "D1", 2); //增長2 RedisCacheHelper.Instance.ZSortDecr("zsortkey", "A1", 1); //減去1
//獲取長度 var getlength = RedisCacheHelper.Instance.SortedSetLength("zsortkey"); Console.WriteLine(getlength); //移除某個元素 var getok = RedisCacheHelper.Instance.ZSortedRemove("zsortkey", "1"); Console.WriteLine(getok); //獲取榜單某個元素的排名 var getsort = RedisCacheHelper.Instance.ZSortedRank("zsortkey", "2"); Console.WriteLine(getsort); //獲取有序集合中的某個元素的值 //擴展的有 //SortedSetRangeByRank 根據索引獲取member值,默認是升序,能夠獲取指定索引內的member值 //SortedSetRangeByScore:根據score獲取member值,默認是升序,能夠獲取指定score開始和結束的member值,後面的skip和take用於分頁 //SortedSetRangeByValue:根據member獲取member值,默認是升序,能夠獲取指定member開始和結束的值,後面的skip和take用於分頁 //SortedSetRangeByRankWithScores:獲取member和score值,能夠只返回 start-stop 這個索引排序內的值(默認升序),後面的skip和take用於分頁 var getvalue = RedisCacheHelper.Instance.ZSortedScore("zsortkey", "4"); Console.WriteLine(getvalue);
這裏附上Helper類ide
#region SortSet類型 有序集合 /// <summary> /// 增長,能夠一次增長一個member,也能夠一次增長多個member /// </summary> /// <param name="key"></param> /// <param name="member"></param> /// <param name="score"></param> /// <param name="db"></param> /// <returns></returns> public bool ZSortadd(string key, string member, double score, int db = -1) { try { var _db = GetDatabase(db); if ((object)key == null) return false; else return _db.SortedSetAdd(key, member, score); } catch (Exception ex) { throw; } } /// <summary> /// 對Score值自增 /// 若是不存在這member值,則執行增長member操做,並返回當前Score值 /// </summary> /// <param name="key">The key.</param> /// <param name="member">The member.</param> /// <param name="score">The score.</param> /// <param name="db">The database.</param> /// <returns></returns> public double ZSortIncr(string key, string member, double score, int db = -1) { try { var _db = GetDatabase(db); if ((object)key == null) return 0; else return _db.SortedSetIncrement(key, member, score); } catch (Exception ex) { throw; } } /// <summary> /// 對Score值自減 /// 若是不存在這member值,則執行增長member操做,並返回當前Score值 /// </summary> /// <param name="key">The key.</param> /// <param name="member">The member.</param> /// <param name="score">The score.</param> /// <param name="db">The database.</param> /// <returns></returns> public double ZSortDecr(string key, string member, double score, int db = -1) { try { var _db = GetDatabase(db); if ((object)key == null) return 0; else return _db.SortedSetDecrement(key, member, score); } catch (Exception ex) { throw; } } /// <summary> /// 長度 /// </summary> /// <param name="redisKey"></param> /// <param name="db"></param> /// <returns></returns> public long SortedSetLength(string redisKey, int db = -1) { var _db = GetDatabase(db); return _db.SortedSetLength(redisKey); } /// <summary> /// 移除某個元素 /// </summary> /// <param name="key"></param> /// <param name="memebr"></param> /// <param name="db"></param> /// <returns></returns> public bool ZSortedRemove(string key, string memebr, int db = -1) { try { var _db = GetDatabase(db); if ((object)key == null) return false; else return _db.SortedSetRemove(key, memebr); } catch (Exception) { return false; } } /// <summary> /// 獲取榜單某個元素的排名、排行 /// </summary> /// <param name="key"></param> /// <param name="mumber"></param> /// <param name="db"></param> /// <returns></returns> public double ZSortedRank(string key, string mumber, int db = -1) { try { var _db = GetDatabase(db); if ((object)key == null) return 0; else return _db.SortedSetRank(key, mumber) ?? 0; } catch (Exception) { return 0; } } /// <summary> /// 獲取有序集合中的某個元素的值 /// </summary> /// <param name="key">The key.</param> /// <param name="member">The member.</param> /// <param name="db">The database.</param> /// <returns></returns> public double ZSortedScore(string key, string member, int db = -1) { try { var _db = GetDatabase(db); if ((object)key == null) return 0; else return Convert.ToDouble(_db.SortedSetScore(key, member)); } catch (Exception ex) { throw; } } #endregion