Redis的SET是无序的String集合,它里面的元素是不会重复的。
SADD,SMEMBERS
SADD命令会添加新元素到SET,可以看到一次性可以添加一个或多个元素。
SMEMBERS可以获取set里所有的元素,但是每次调用得到结果的顺序是无法保证的。
SISMEMBER
SISMEMBER可以判断某个元素是否在set里,返回1表示存在,0表示不存在
SINTER
SINTER可以查看多个set之间的交集
SPOP
SPOP可以随机从set中移除一个或多个元素并返回
SUNIONSTORE
如果只有一个set需要合并的话,那么就相当于是复制,原来的数据保留
SCARD
SRANDMEMBER
SRANDMEMBER可以随机获取set里面的元素,但是不会移除它们
C#操作SET
class Program { static void Main(string[] args) { ConnectionMultiplexer connectionMultiplexer = ConnectionMultiplexer.Connect("120.132.116.153:6379"); IDatabase database = connectionMultiplexer.GetDatabase(0); database.KeyDelete("set1"); database.KeyDelete("set2"); //SADD database.SetAdd("set1", new RedisValue[] { 0, 1, 2, 3, 4, 5, 6 }); //SNENBERS var sets = database.SetMembers("set1"); foreach (var set in sets) { Console.WriteLine($"{set}"); } Console.WriteLine($"{database.SetContains("set1", 0)}"); Console.WriteLine($"{database.SetContains("set1", 10)}"); Console.WriteLine("---------------------------"); //SADD database.SetAdd("set2", new RedisValue[] { 4, 5, 6 }); //SINTER var sets1 = database.SetCombine(SetOperation.Intersect, new RedisKey[] {"set1", "set2"}); foreach (var set in sets1) { Console.WriteLine($"{set}"); } Console.WriteLine("---------------------------"); //SUNIONSTORE var sets2 = database.SetCombine(SetOperation.Union, new RedisKey[] { "set1", "set2" }); foreach (var set in sets2) { Console.WriteLine($"{set}"); } Console.WriteLine("---------------------------"); //SCARD Console.WriteLine($"{database.SetLength("set1")}"); Console.WriteLine("---------------------------"); //SRANDMEMBER Console.WriteLine($"{database.SetRandomMember("set1")}"); Console.WriteLine($"{database.SetRandomMember("set1")}"); Console.WriteLine($"{database.SetRandomMember("set1")}"); Console.ReadLine(); } }