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("关羽");