This post will introduce you to some usages of Set in Redis.The Set is a unordered set,it means that the

data was stored in the database randomly.And there are 15 commands you can use in Redis,the same as Hash.

  

  For storing the data to database,we can use the command sadd to finish the job.The sadd is very powerful,we

can not only use it to add a single value to the key,but also multi values.For example,I add 11 to the key named

set-1 at first.Laterly I add 12 ~15 too.So easy the command is.When you execute the sadd command , the client

will return the amount of the set.

sadd set-
sadd set-

  After executing the command sadd,it will return a integer to show us the amount of this set.But what can we

know the members of this set?We can use smembers to get all of the members in the set.

smembers set-

  There are two commands to help us to remove the members of the set.The spop command will remove a or multi

member of the set randomly.As the following picture,I remove a member from the set-1 firstly,and then I remove two

members from the set-1.At last,we will find that the set-1 only has 11 and 13.

spop set-
spop set-

  srem,the second command of removing members from the set,can remove the members from the set by your own

ideas,not randomly.I removed the last two members from the set-1 by this command.At this time,I want to get all of the

members of the set-1 ,you will get the information that the set is empty.

srem set-  

  When we are coding , the most things we do is to judge a member whether exists in the set.In Redis,you can do this

thing as well.The set-1 is empty now,I judge the member 11 whether exists in the set-11,it returns 0 meaning 11 is not

the member of the set.After adding members to this set,the second time to judge returns 1 meaning 11 is the member of set-1.

sismember set- 

  As all you know,we use the Property length or the method count to get how many members in the array by using C#.

In Redis,we get the numbers of members in a set by using scard.

scard set-

  The commands I will show you next needs at lease two sets,so I have to add another one.And you will be familiar with

the set opreation of Mathematical.Command sinter will return the command members both set-1 and set-2 contain.Command

sunion will return all of the members both set-1 and set-2 contian.Command sdiff will return the difference members from the sets.

sinter set- set-
sunion set- set-
sdiff set- set-
sdiff set- set-

  We can store the result of the set opreation too.
sinterstore inter-set set- set-
sunionstore union-set set- set-
sdiffstore diff-set- set- set-
sdiffstore diff-set- set- set-

  After showing the native commands,we should turn to the usage of StackExchange.Redis.

             //sadd smembers
db.SetAdd("set-1", );
var set_1 = new RedisValue[] {,,, };
db.SetAdd("set-1", set_1);
Console.WriteLine("the members of the set-1 :");
foreach (var item in db.SetMembers("set-1"))
{
Console.WriteLine(item);
} //spop srem
Console.WriteLine(string.Format("the value was poped is {0}", db.SetPop("set-1")));
Console.WriteLine(string.Format("the value was poped is {0}", db.SetPop("set-1")));
Console.WriteLine(string.Format("the value was poped is {0}", db.SetPop("set-1"))); db.SetRemove("set-1", db.SetMembers("set-1"));
Console.WriteLine(string.Format("amount of set-1 is {0}", db.SetMembers("set-1").Length)); //sismember
Console.WriteLine(string.Format("11 {0} the member of set-1",db.SetContains("set-1",)?"is":"isn't"));
var set_1_again = new RedisValue[] {, , , , };
db.SetAdd("set-1", set_1_again);
Console.WriteLine(string.Format("11 {0} the member of set-1", db.SetContains("set-1", ) ? "is" : "isn't")); //scard
Console.WriteLine(string.Format("amount of set-1 is {0}", db.SetLength("set-1"))); var set_2 = new RedisValue[] { , , , };
db.SetAdd("set-2", set_2); //sinter
Console.WriteLine("the result of intersect:");
foreach (var item in db.SetCombine(SetOperation.Intersect, new RedisKey[] { "set-1", "set-2" }))
{
Console.WriteLine(item);
}
// sunoin
Console.WriteLine("the result of union:");
foreach (var item in db.SetCombine(SetOperation.Union, new RedisKey[] { "set-1", "set-2" }))
{
Console.WriteLine(item);
}
//sdiff
Console.WriteLine("the result of difference1:");
foreach (var item in db.SetCombine(SetOperation.Difference, new RedisKey[] { "set-1", "set-2" }))
{
Console.WriteLine(item);
} Console.WriteLine("the result of difference2:");
foreach (var item in db.SetCombine(SetOperation.Difference, new RedisKey[] { "set-2", "set-1" }))
{
Console.WriteLine(item);
}
  When you debug the codes,the results are as follow.

  

  The next post of this series is the basic opreation of Sorted Set in Redis.

Basic Tutorials of Redis(4) -Set的更多相关文章

  1. Basic Tutorials of Redis(9) -First Edition RedisHelper

    After learning the basic opreation of Redis,we should take some time to summarize the usage. And I w ...

  2. Basic Tutorials of Redis(2) - String

    This post is mainly about how to use the commands to handle the Strings of Redis.And I will show you ...

  3. Basic Tutorials of Redis(8) -Transaction

    Data play an important part in our project,how can we ensure correctness of the data and prevent the ...

  4. Basic Tutorials of Redis(7) -Publish and Subscribe

    This post is mainly about the publishment and subscription in Redis.I think you may subscribe some o ...

  5. Basic Tutorials of Redis(6) - List

    Redis's List is different from C#'s List,but similar with C#'s LinkedList.Sometimes I confuse with t ...

  6. Basic Tutorials of Redis(5) - Sorted Set

    The last post is mainly about the unsorted set,in this post I will show you the sorted set playing a ...

  7. Basic Tutorials of Redis(3) -Hash

    When you first saw the name of Hash,what do you think?HashSet,HashTable or other data structs of C#? ...

  8. Basic Tutorials of Redis(1) - Install And Configure Redis

    Nowaday, Redis became more and more popular , many projects use it in the cache module and the store ...

  9. 【转】Redis入门

    Redis是一个开源,先进的key-value存储,并用于构建高性能,可扩展的Web应用程序的完美解决方案. Redis从它的许多竞争继承来的三个主要特点: Redis数据库完全在内存中,使用磁盘仅用 ...

随机推荐

  1. 【开源】.net 分布式架构之监控平台

    开源地址:http://git.oschina.net/chejiangyi/Dyd.BaseService.Monitor .net 简单监控平台,用于集群的性能监控,应用耗时监控管理,统一日志管理 ...

  2. UWP简单示例(三):快速开发2D游戏引擎

    准备 IDE:VisualStudio 2015 Language:VB.NET/C# 图形API:Win2D MSDN教程:UWP游戏开发 游戏开发涉及哪些技术? 游戏开发是一门复杂的艺术,编码方面 ...

  3. 获取打开的Word文档

    using Word = Microsoft.Office.Interop.Word; int _getApplicationErrorCount=0; bool _isMsOffice = true ...

  4. BPM生产安全管理解决方案分享

    一.方案概述生产安全管理是企业生产管理的重要组成部分,组织实施好企业安全管理规划.指导.检查和决策,保证生产处于最佳安全状态是安全管理的重要内容和职责.H3 BPM企业生产安全管理解决方案是一套专门为 ...

  5. iOS之开发中常用的颜色及其对应的RGB值

      R G B 值   R G B 值   R G B 值 黑色 0 0 0 #000000 黄色 255 255 0 #FFFF00 浅灰蓝色 176 224 230 #B0E0E6 象牙黑 41 ...

  6. Android 指纹认证

    安卓指纹认证使用智能手机触摸传感器对用户进行身份验证.Android Marshmallow(棉花糖)提供了一套API,使用户很容易使用触摸传感器.在Android Marshmallow之前访问触摸 ...

  7. 关系型数据库与NoSQL数据库

    关系型数据库的优缺点 优点: 可以做事务处理,从而保证了数据的一致性: 可以进行JOIN等多表查询: 由于以SQL标准化为前提,数据更新的开销很小(相同的字段基本上都只有一处). 缺点: 大量数据的写 ...

  8. centos 6 安装配置openvpn

    下载地址:http://swupdate.openvpn.org/community/releases/http://www.oberhumer.com/opensource/lzo/download ...

  9. .NET中使用Redis (二)

    很久以前写了一篇文章 .NET中使用Redis 介绍了如何安装Redis服务端,以及如何在.NET中调用Redis读取数据.本文简单介绍如何设计NoSQL数据库,以及如何使用Redis来存储对象. 和 ...

  10. salesforce 零基础学习(六十)Wizard样式创建数据

    项目中表之间关联关系特别多,比如三个表中A,B,C  C作为主表,A,B作为从表,有时候C表需要创建数据时,同时需要创建A,B两个表的数据,这种情况下,使用Wizard样式会更加友好. 以Goods_ ...