C# 通过ServiceStack 操作Redis——Set类型的使用及示例
ServiceStack 程序集里面没有方法注解,我在这里将注解添加上去,有不当之处,欢迎指正
Console.WriteLine("---Set类型---");
//添加 setId集合中添加item值
client.AddItemToSet(setId, item);
//setId集合中添加多个item
client.AddRangeToSet(setId,items);
//获取 随机获取setId集合中的一个值
client.GetRandomItemFromSet(setId);
//获取setId集合值的数量
client.GetSetCount(setId);
// 获取setId集合中所有的值
client.GetAllItemsFromSet(setId);
// 随机删除setId集合中的一个值
client.PopItemFromSet(setId);
// 删除setId集合中的item
client.RemoveItemFromSet(setId, item);
//从fromSetId集合中移除值为item的值,并把item添加到toSetId集合中
client.MoveBetweenSets(fromSetId, toSetId, item);
//返回多个setId集合中的并集,返还hashset
client.GetUnionFromSets(setIds);
//返回多个setId集合中的交集,返还hashset
client.GetIntersectFromSets(setIds);
//返回fromSetId 与多个withSetId集合中的差集,返还hashset
client.GetDifferencesFromSet(fromSetId, withSetIds);
// 多个setId集合中的并集,放入intoSetId集合中
client.StoreUnionFromSets(intoSetId, setIds);
//把fromSetId集合中的数据与withSetIds集合中的数据对比,fromSetId集合中不存在keys集合中,则把这些不存在的数据放入intoSetId集合中
client.StoreDifferencesFromSet(intoSetId, fromSetId, withSetIds);
下面是数据输入
//1.添加,value不重复,添加多个Marren1也只有一个
//单个添加 关注刘备的用户
client.AddItemToSet("刘备", "小1");
client.AddItemToSet("刘备", "小2");
client.AddItemToSet("刘备", "小2");
client.AddItemToSet("刘备", "小3");
client.AddItemToSet("刘备", "小3");
client.AddItemToSet("刘备", "小3");
client.AddItemToSet("刘备", "小4");
client.AddItemToSet("刘备", "小5");
client.AddItemToSet("刘备", "小6");
client.AddItemToSet("刘备", "小7");
client.AddItemToSet("刘备", "小8");
client.AddItemToSet("刘备", "小8");
//2.获取setId集合的数量
long count1= client.GetSetCount("刘备");
//3.判断setId中是否包含指定值
bool b1=client.SetContainsItem("刘备", "小5");
//4.随机获取setId集合中的一个值
string value1=client.GetRandomItemFromSet("刘备");
//5.获取setId中的所有值
HashSet<string> user1= client.GetAllItemsFromSet("刘备");
效果图

删除几条数据
//6. 删除setId中指定value
client.RemoveItemFromSet("刘备", "小6");
//7. 随机删除setId集合中的一个值,并返回该值
string value2=client.PopItemFromSet("刘备");
// 随机删除setId集合中的2个值,并返回这2个值
List<string> value3 = client.PopItemsFromSet("刘备", 2);

再添加一个集合 “张飞”
//多添加 关注张飞的用户
List<string> items = new List<string>() { "小1", "小12", "小3", "小3", "小3", "小14", "小5" , "小16", "小7", "小8", "小18" };
client.AddRangeToSet("张飞", items);
HashSet<string> user2 = client.GetAllItemsFromSet("张飞");

下面就是集合一些操作:交、并、差、补
//获取交集
HashSet<string> data1=client.GetIntersectFromSets("刘备", "张飞");
//获取并集
HashSet<string> data2 = client.GetUnionFromSets("刘备", "张飞");
//获取差集
HashSet<string> data3 = client.GetDifferencesFromSet("刘备","张飞");
//补集
client.StoreDifferencesFromSet("关羽", "刘备", "张飞");
HashSet<string> data4 = client.GetAllItemsFromSet("关羽");


C# 通过ServiceStack 操作Redis——Set类型的使用及示例的更多相关文章
- C# 通过ServiceStack 操作Redis——String类型的使用及示例
1.引用Nuget包 ServiceStack.Redis 我这里就用别人已经封装好的Reids操作类,来演示,并附上一些说明 RedisConfigInfo--redis配置文件信息 /// < ...
- C# 通过ServiceStack 操作Redis——List类型的使用及示例
Redis list的实现为一个双向链表,即可以支持反向查找和遍历,更方便操作,不过带来了部分额外的内存开销, /// <summary> /// Redis list的实现为一个双向链表 ...
- C# 通过ServiceStack 操作Redis——ZSet类型的使用及示例
Sorted Sets是将 Set 中的元素增加了一个权重参数 score,使得集合中的元素能够按 score 进行有序排列 /// <summary> /// Sorted Sets是将 ...
- servicestack操作redis
tatic void Main(string[] args) { );//redis服务IP和端口 #region =insert= var storeMembers = new List<st ...
- go使用go-redis操作redis 连接类型,pipline, 发布订阅
内容: 一 . 客户端Client(普通模式,主从模式,哨兵模式)二. conn连接(连接, pipline, 发布订阅等)三. 示例程序(连接, pipline, 发布订阅等)客户端Client 普 ...
- python 操作redis数据
python 操作redis 各种类型的数据 # encoding:utf-8 import redis import time def main(): """ redi ...
- python操作Redis安装、支持存储类型、普通连接、连接池
一.python操作redis安装和支持存储类型 安装redis模块 pip3 install redis 二.Python操作Redis之普通连接 redis-py提供两个类Redis和Strict ...
- 第二百九十九节,python操作redis缓存-SortSet有序集合类型,可以理解为有序列表
python操作redis缓存-SortSet有序集合类型,可以理解为有序列表 有序集合,在集合的基础上,为每元素排序:元素的排序需要根据另外一个值来进行比较,所以,对于有序集合,每一个元素有两个值, ...
- 第二百九十八节,python操作redis缓存-Set集合类型,可以理解为不能有重复元素的列表
python操作redis缓存-Set集合类型,可以理解为不能有重复元素的列表 sadd(name,values)name对应的集合中添加元素 #!/usr/bin/env python # -*- ...
随机推荐
- Jenkins 安装与部署详细教程
一.概述 Jenkins 的前身是 Hudson 是一个可扩展的持续集成引擎.Jenkins 是一款开源 CI&CD 软件,用于自动化各种任务,包括构建.测试和部署软件.Jenkins 支持各 ...
- printf,sprintf,fprintf的区别与联系
在写代码过程中总会遇到printf和sprintf,既然这两个都遇到了,那么不妨再加一个fprintf吧. 他们三个都是将格式化字符串输出,区别就是他们输出的目标不一样. (1).printf,是把格 ...
- 2019牛客多校第五场C generator 2(BSGS)题解
题意: 传送门 已知递推公式\(x_i = a*x_{i - 1} + b\mod p\),\(p\)是素数,已知\(x_0,a,b,p\),给出一个\(n\)和\(v\),问你满足\(x_i = v ...
- 后Low Code时代:聚焦和突破
很多人都不想被贴上标签,我曾经也一样.觉得青春不能被定义,人也不能被分类.但随着学习和工作的变迁,慢慢开始发现标签也是一种名片效应. 比如一个做汽车销售的朋友,他就对BMW的车型非常熟悉,可以说是懂车 ...
- flex & align-content & justify-items
flex & align-content & justify-items align-content 多行 align-items 的对其方式 https://developer.mo ...
- soft tab
soft tab hard-tabs 是硬件 tab,就是按一个 tab 键; soft-tabs 是软件 tab,通过按 4个 space 键实现; refs Tabs vs. Spaces, FR ...
- React Hooks: useImperativeHandle All In One
React Hooks: useImperativeHandle All In One useImperativeHandle https://reactjs.org/docs/hooks-refer ...
- auto switch HTTP protocol Chrome Extension
auto switch HTTP protocol Chrome Extension HTTPS auto switch to HTTP VPN https://chrome.google.com/w ...
- idle & js
idle & js idle meaning in js https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensi ...
- 什么是USDN稳定币?USDN的应用价值是什么?
9月22日,美国货币监理署(OCC)发布了一项稳定币指南,主要内容围绕的是稳定币的监管及相关规定.一时间,稳定币得到了市场上广泛的关注.那么,什么是稳定币呢?什么又是USDN稳定币呢? 1.什么是稳定 ...