【问题标题】:Execute Lua script to delete all keys matching a pattern on Redis DB via stackexchange.redis执行 Lua 脚本,通过 stackexchange.redis 删除与 Redis DB 上的模式匹配的所有键
【发布时间】:2021-07-25 04:56:03
【问题描述】:

我有一个Lua script,它会删除与某个模式匹配的所有键。脚本如下:

EVAL "return redis.call('del', 'defaultKey', unpack(redis.call('keys', ARGV[1])))" 0 ad:*

这在redis-cli 中运行良好,但我想在.NET 应用程序中使用StachExchange.Redis 执行它。 我尝试了以下方法:

await db.ExecuteAsync("EVAL", "\"return redis.call('del', 'defaultKey', unpack(redis.call('keys', ARGV[1])))\" 0 ad:*");

但我收到以下错误

| Errormessage: ERR wrong number of arguments for 'eval' command

【问题讨论】:

    标签: redis lua stackexchange.redis


    【解决方案1】:

    找到答案

    var script = "return redis.call('del', 'defaultKey', unpack(redis.call('keys', @keypattern)))";
    var prepared = LuaScript.Prepare(script);
    var noOfDeletedKeys = db.ScriptEvaluate(prepared, new { keypattern = (RedisKey)"ad:*" });
    

    【讨论】:

      猜你喜欢
      • 2015-11-05
      • 2016-07-28
      • 1970-01-01
      • 2020-02-18
      • 2019-05-28
      • 2018-08-09
      • 2019-05-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多