springboot 使用 lua 创建 redis 布隆过滤器:@user_script:1: ERR bad error rate

Posted

技术标签:

【中文标题】springboot 使用 lua 创建 redis 布隆过滤器:@user_script:1: ERR bad error rate【英文标题】:springboot use lua to create redis bloom filter : @user_script:1: ERR bad error rate 【发布时间】:2021-08-24 11:06:28 【问题描述】:

我使用SpringBoot提供的redistemplate来执行Lua脚本:

return redis.call('bf.reserve', KEYS[1],ARGV[1],ARGV[2])

但它总是出错:

ERR 错误运行脚本(调用 f_264cca3824c7a277f5d3cf63f1b2642a0750e989):@user_script:1:ERR 错误率。

这是我的码头工人形象: redislabs/rebloom:2.2.5

我尝试在 linux 命令中运行这个脚本,它可以工作:

[root@daice ~]# redis-cli --eval a.lua city , 0.001 100000
OK
[root@daice ~]# redis-cli
127.0.0.1:6379> keys *
1) "city"

【问题讨论】:

【参考方案1】:

我刚刚在这个link中查找了错误,sn-p看起来像

 if (RedisModule_StringToDouble(argv[2], &error_rate) != REDISMODULE_OK) 
        return RedisModule_ReplyWithError(ctx, "ERR bad error rate");

我假设您为 error_rate 提供的参数不会转换为双精度值。

【讨论】:

以上是关于springboot 使用 lua 创建 redis 布隆过滤器:@user_script:1: ERR bad error rate的主要内容,如果未能解决你的问题,请参考以下文章

springboot中使用redis,并且执行调试lua脚本

SpringBoot通过RedisTemplate执行Lua脚本

lua脚本~ Redis调用

Redis lua环境

Redis 如何调试Lua 脚本

Redis深度解析(19)-Lua脚本