zoukankan      html  css  js  c++  java
  • redis 阻塞锁 和非阻塞锁 lua 脚本

                 using (var datalock = redisdb.AcquireLock("test", TimeSpan.FromSeconds(2))
               { //阻塞锁
                 ////todo
    
                }
               var isok=redis.Add<string>("lockdata2","locakdata2",TimeSpan.FromSeconds(2)); 
              //  非阻塞锁
                if(isok)
                { 
                /// todo
                }

       

    using  (var client=new redisClient("192.168.******"),6379)

    {

      client.ExecLuaAsString(@"redis.call('set','name','jaosn')");

      client.ExecLuaAsString(@"return redis.call('set','name')");

    }

    /// lua  脚本   key  和argv   都是参数化的意思 。点赞 点踩的应用场景

    redis SREM zset 的方法
         var lua = @"local count = redis.call('SISMEMBER',KEYS[1],ARGV[1])
                                      if(tonumber(count)>=0)
                                    then 
                                       redis.call('SREM',KEYS[1],ARGV[1])
                                     else
    
                                     end
                                    redis.call('SADD',KEYS[2],ARGV[1]) ";
                    Console.WriteLine(client.ExecLuaAsString(lua, keys: new string[] { "abs:Content:1:Up", "abs:Content:1:Down" }, args: new string[] { "2" }));
          
  • 相关阅读:
    串口调试助手
    自己动手编写俄罗斯方块
    ASP.NET Core log4net
    ASP.NET Core读取配置文件
    ASP.NETCore3 MVC
    ASP.NETCore2C#7.0新语法
    ASP.NETCore1C#6.0新语法
    C#加密解密
    前端通用的滚动条样式
    C# 106 短信发送
  • 原文地址:https://www.cnblogs.com/jasontarry/p/15501140.html
Copyright © 2011-2022 走看看