redis分布式缓存php,Redis分布式缓存系列(四)

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

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

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

存储形式:key--List

5c8bc466630bf8f2fff4c884f1106a97.png

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值