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 # -*- ...
随机推荐
- anaconda + pyqt5 + pycharm 安装,测试
1. 安装sip pip install sip 2.安装pyqt5 pip install PyQt5 pip install PyQt5-tools -i http://pypi.douban.c ...
- Leetcode(3)-无重复字符的最长子串
给定一个字符串,找出不含有重复字符的最长子串的长度. 示例: 给定 "abcabcbb" ,没有重复字符的最长子串是 "abc" ,那么长度就是3. 给定 &q ...
- BZOJ3211 花神游历各国(分块 区间开根号)
题意:给n个数,可以进行两种操作:给区间[l,r]每个数开方向下取整:算区间[l,r]的和. 思路:我们可以知道,一个数一直开方下去,就会变成0或者1,然后就不会变了.那么当一个区间只剩0或1时,就不 ...
- 快速搞懂.NET 5/.NET Core应用程序的发布部署
.NET Framework时代,.NET 应用程序大多直接部署运行在Windows服务器上,当然也可以通过Mono部署运行在Linux上.无论部署exe,还是IIS站点.或是Windows Serv ...
- LVS之DR模式部署
一.LVS-DR数据包流向分析 为方便进行原理分析,将Client与群集机器放在同一网络中,数据包流经的路线为1-2-3-41.Client 向目标 VIP 发出请求,Director(负载均衡器)接 ...
- uni-app 实战-打包 📦 App
uni-app 实战-打包 App Android & iOS 证书 广告 refs xgqfrms 2012-2020 www.cnblogs.com 发布文章使用:只允许注册用户才可以访问 ...
- cnblogs blogs backup & node.js crawler
cnblogs blogs backup & node.js crawler refs xgqfrms 2012-2020 www.cnblogs.com 发布文章使用:只允许注册用户才可以访 ...
- TypeScript 面试题汇总(2020 版)
TypeScript 面试题汇总(2020 版) TypeScript 3.9 https://www.typescriptlang.org/zh/ TypeScript 4.0 RC https:/ ...
- illustrating javascript prototype & prototype chain
illustrating javascript prototype & prototype chain 图解 js 原型和原型链 proto & prototype func; // ...
- VAST算力增值效应,助力NGK全生态产业链!
虽然比特币和区块链在2009年就诞生了,但它们对于一些人来说好像还是很遥远,归根结底还是由于数字货币始终未能在全球真正实现流通和支付功能.区块链1.0,以比特币为代表,实现了数字支付:区块链2.0,E ...