StackExchange.Redis 實現SetNx


  今天有同事指出如何在StackExchange.Redis 實現Redis的原生命令。

 ConnectionMultiplexer redis = ConnectionMultiplexer.Connect(options);
            var db=redis.GetDatabase();
            bool flag = db.StringSet("InvQty222", "111", TimeSpan.FromSeconds(900), When.NotExists, CommandFlags.None);
            Console.WriteLine(flag);
            Console.ReadKey();
        }

   部分源碼如下:

   if (expiry == null || expiry.Value == TimeSpan.MaxValue)
            { // no expiry
                switch (when)
                {
                    case When.Always: return Message.Create(Database, flags, RedisCommand.SET, key, value);
                    case When.NotExists: return Message.Create(Database, flags, RedisCommand.SETNX, key, value);
                    case When.Exists: return Message.Create(Database, flags, RedisCommand.SET, key, value, RedisLiterals.XX);
                }
            }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM