2020-11-21

Redis分布式缓存系列(五)

本系列将和大家分享Redis分布式缓存,本章主要简单介绍下Redis中的ZSet类型,以及如何使用Redis解决实时排行榜问题。

本系列将和大家分享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