天天看點

Redis資料類型Set

Redis的SET是無序的String集合,它裡面的元素是不會重複的。

SADD,SMEMBERS

SADD指令會添加新元素到SET,可以看到一次性可以添加一個或多個元素。

SMEMBERS可以擷取set裡所有的元素,但是每次調用得到結果的順序是無法保證的。

Redis資料類型Set

SISMEMBER

SISMEMBER可以判斷某個元素是否在set裡,傳回1表示存在,0表示不存在

Redis資料類型Set

SINTER

SINTER可以檢視多個set之間的交集

Redis資料類型Set

SPOP

SPOP可以随機從set中移除一個或多個元素并傳回

Redis資料類型Set

SUNIONSTORE

Redis資料類型Set
Redis資料類型Set

如果隻有一個set需要合并的話,那麼就相當于是複制,原來的資料保留

SCARD

Redis資料類型Set

SRANDMEMBER

SRANDMEMBER可以随機擷取set裡面的元素,但是不會移除它們

Redis資料類型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();
        }
    }      
Redis資料類型Set