【发布时间】:2021-05-09 15:15:30
【问题描述】:
我正在尝试在 c# 中创建一个简单的方法来获取我的 Redis 实例中的键数。 在 redis 中,我的键如下:
mykey:1
mykey:2
mykey:3
通过使用redis-cli,我可以运行:
eval "return #redis.pcall('keys', 'mykey:*')" 0
然后它返回:
(integer) 3
所以,我在 c# 中构建了这个函数:
public void GetThatCounter()
{
var script=LuaScript.Prepare("redis.pcall('keys', 'mykey:*')");
var result=dbCache.ScriptEvaluate(script);
Console.WriteLine("result"+result.ToString());
}
但是,结果包含“isnull:true”,表示没有结果...
(该函数显然现在什么都不返回,我只是将它用作测试并在调试时中断代码执行,以使用 Visual Studio 编辑器挖掘结果变量)
有什么帮助吗?
【问题讨论】:
-
C#嵌入脚本中没有return语句。也许这就是原因?
-
其实我说的是
LuaScript.Prepare参数中嵌入的lua脚本,而不是C#代码... -
哎哟......好吧,我删除了我无用的评论并将“返回”添加到 lua 脚本中。现在它返回给我一个包含所有键(key1、key2、key3)的数组,而不仅仅是元素的数量......?!?
-
您是否还添加了
#符号?我猜哪个给出了这个数组的大小? -
太棒了!!!解决了这个问题!
标签: c# redis lua stackexchange.redis