• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

Redis分布式缓存系列(四)

互联网 diligentman 7天前 4次浏览

本系列将和大家分享Redis分布式缓存,本章主要简单介绍下Redis中的Set类型,以及使用Redis解决数据去重、共同好友、可能认识、统计访问网站的IP数、统计点赞数和随机获取某项值等问题。

本系列将和大家分享Redis分布式缓存,本章主要简单介绍下Redis中的Set类型,以及使用Redis解决数据去重、共同好友、可能认识、统计访问网站的IP数、统计点赞数和随机获取某项值等问题。

Set类型:用哈希表来保持字符串的唯一性,没有先后顺序,存储一些集合性的数据。(去重、无序集合)

Set类型最大的特点就是无序、去重,以及交集、差集、并集的使用。

存储形式:key–List<value>

Redis分布式缓存系列(四)

首先先给大家Show一波Redis中与Set类型相关的API:

using System.Collections.Generic;namespace TianYa.Redis.Service{ /// <summary> /// Set:用哈希表来保持字符串的唯一性,没有先后顺序,存储一些集合性的数据。(去重、无序集合、交差并的使用) /// 1、共同好友、可能认识(二度好友) /// 2、利用唯一性,可以统计访问网站的所有独立IP /// </summary> public class RedisSetService : RedisBase {  #region 添加  /// <summary>  /// 往set集合中添加item  /// </summary>  public void AddItemToSet(string setId, string item)  {   base._redisClient.AddItemToSet(setId, item);  }  /// <summary>  /// 往set集合中添加list集合  /// </summary>  public void AddRangeToSet(string setId, List<string> items)  {   base._redisClient.AddRangeToSet(setId, items);  }  #endregion 添加  #region 获取  /// <summary>  /// 随机获取set集合中的一个值  /// </summary>  public string GetRandomItemFromSet(string setId)  {   return base._redisClient.GetRandomItemFromSet(setId);  }  /// <summary>  /// 获取set集合中值的数量  /// </summary>  public long GetSetCount(string setId)  {   return base._redisClient.GetSetCount(setId);  }  /// <summary>  /// 获取set集合中的所有值  /// </summary>  public HashSet<string> GetAllItemsFromSet(string setId)  {   return base._redisClient.GetAllItemsFromSet(setId);  }  #endregion 获取  #region 删除  /// <summary>  /// 随机删除set集合中的一个值  /// </summary>  public string RandomRemoveItemFromSet(string setId)  {   return base._redisClient.PopItemFromSet(setId);  }  /// <summary>  /// 删除set集合中指定的item  /// </summary>  public void RemoveItemFromSet(string setId, string item)  {   base._redisClient.RemoveItemFromSet(setId, item);  }  #endregion 删除  #region 其它  /// <summary>  /// 从fromSetId集合中移除值为item的值,并把item添加到toSetId集合中  /// </summary>  public void MoveBetweenSets(string fromSetId, string toSetId, string item)  {   base._redisClient.MoveBetweenSets(fromSetId, toSetId, item);  }  /// <summary>  /// 返回setIds多个集合中的并集  /// </summary>  public HashSet<string> GetUnionFromSets(params string[] setIds)  {   return base._redisClient.GetUnionFromSets(setIds);  }  /// <summary>  /// 返回setIds多个集合中的交集  /// </summary>  public HashSet<string> GetIntersectFromSets(params string[] setIds)  {   return base._redisClient.GetIntersectFromSets(setIds);  }  /// <summary>  /// 返回withSetIds多个集合中的差集  /// </summary>  /// <param name="fromSetId">原集合</param>  /// <param name="withSetIds">其他集合</param>  /// <returns>出现在原集合,但不包含在其他集合</returns>  public HashSet<string> GetDifferencesFromSet(string fromSetId, params string[] withSetIds)  {   return base._redisClient.GetDifferencesFromSet(fromSetId, withSetIds);  }  /// <summary>  /// 将setIds多个集合中的并集放入intoSetId集合中  /// </summary>  public void StoreUnionFromSets(string intoSetId, string[] setIds)  {   base._redisClient.StoreUnionFromSets(intoSetId, setIds);  }  /// <summary>  /// 把fromSetId集合中的数据与withSetIds集合中的数据对比,fromSetId集合中不存在withSetIds集合中,则把这些不存在的数据放入intoSetId集合中  /// </summary>  public void StoreDifferencesFromSet(string intoSetId, string fromSetId, string[] withSetIds)  {   base._redisClient.StoreDifferencesFromSet(intoSetId, fromSetId, withSetIds);  }  #e.........

喜欢 (0)