本系列将和大家分享Redis分布式缓存,本章主要简单介绍下Redis中的ZSet类型,以及如何使用Redis解决实时排行榜问题。
Sorted Sets是将 Set 中的元素增加了一个权重参数 score,使得集合中的元素能够按 score 进行有序排列。
ZSet类型最大的特点就是有序、去重,以及交集、并集的使用。
存储形式:key--SortList<value>
首先先给大家Show一波Redis中与ZSet类型相关的API:
using System.Collections.Generic;namespace TianYa.Redis.Service{ /// <summary> /// Sorted Sets是将 Set 中的元素增加了一个权重参数 score,使得集合中的元素能够按 score 进行有序排列 /// 1、带有权重的元素,比如一个游戏的用户得分排行榜 /// 2、比较复杂的数据结构,一般用到的场景不算太多 /// </summary> public class RedisZSetService : RedisBase { #region 添加 /// <summary> /// 添加setId/value,默认分数是从1.多*10的9次方以此递增的,自带自增效果 /// </summary> public bool AddItemToSortedSet(string setId, string value) { return base._redisClient.AddItemToSortedSet(setId, value); } /// <summary> /// 添加setId/value,并设置value的分数 /// </summary> public bool AddItemToSortedSet(string setId, string value, double score) { return base._redisClient.AddItemToSortedSet(setId, value, score); } /// <summary> /// 为setId添加values集合,values集合中每个value的分数设置为score /// </summary> public bool AddRangeToSortedSet(string setId, List<string> values, double score) { return base._redisClient.AddRangeToSortedSet(setId, values, score); } /// <summary> /// 为setId添加values集合,values集合中每个value的分数设置为score /// </summary> public bool AddRangeToSortedSet(string setId, List<string> values, long score) { return base._redisClient.AddRangeToSortedSet(setId, values, score); }
No comments:
Post a Comment