using Microsoft.Extensions.Options; using Txgy.RBS.Framework.RedisHelper.Init; using Txgy.RBS.Framework.RedisHelper.Interface; namespace Txgy.RBS.Framework.RedisHelper.Service { /// /// Set:用哈希表来保持字符串的唯一性,没有先后顺序,存储一些集合性的数据 /// 1.共同好友、二度好友 /// 2.利用唯一性,可以统计访问网站的所有独立 IP /// public class RedisSetService : RedisBase { public RedisSetService(IOptionsMonitor options) : base(options) { } #region 添加 /// /// key集合中添加value值 /// public void Add(string key, string value) { IClient.AddItemToSet(key, value); } /// /// key集合中添加list集合 /// public void Add(string key, List list) { IClient.AddRangeToSet(key, list); } #endregion #region 获取 /// /// 随机获取key集合中的一个值 /// public string GetRandomItemFromSet(string key) { return IClient.GetRandomItemFromSet(key); } /// /// 获取key集合值的数量 /// public long GetCount(string key) { return IClient.GetSetCount(key); } /// /// 获取所有key集合的值 /// public HashSet GetAllItemsFromSet(string key) { return IClient.GetAllItemsFromSet(key); } #endregion #region 删除 /// /// 随机删除key集合中的一个值 /// public string RandomRemoveItemFromSet(string key) { return IClient.PopItemFromSet(key); } /// /// 删除key集合中的value /// public void RemoveItemFromSet(string key, string value) { IClient.RemoveItemFromSet(key, value); } #endregion #region 其它 /// /// 从fromkey集合中移除值为value的值,并把value添加到tokey集合中 /// public void MoveBetweenSets(string fromkey, string tokey, string value) { IClient.MoveBetweenSets(fromkey, tokey, value); } /// /// 返回keys多个集合中的并集,返还hashset /// public HashSet GetUnionFromSets(params string[] keys) { return IClient.GetUnionFromSets(keys); } /// /// 返回keys多个集合中的交集,返还hashset /// public HashSet GetIntersectFromSets(params string[] keys) { return IClient.GetIntersectFromSets(keys); } /// /// 返回keys多个集合中的差集,返还hashset /// /// 原集合 /// 其他集合 /// 出现在原集合,但不包含在其他集合 public HashSet GetDifferencesFromSet(string fromKey, params string[] keys) { return IClient.GetDifferencesFromSet(fromKey, keys); } /// /// keys多个集合中的并集,放入newkey集合中 /// public void StoreUnionFromSets(string newkey, string[] keys) { IClient.StoreUnionFromSets(newkey, keys); } /// /// 把fromkey集合中的数据与keys集合中的数据对比,fromkey集合中不存在keys集合中,则把这些不存在的数据放入newkey集合中 /// public void StoreDifferencesFromSet(string newkey, string fromkey, string[] keys) { IClient.StoreDifferencesFromSet(newkey, fromkey, keys); } #endregion } }