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
}
}