使用 SpringBoot 和 Lua 创建 Redis 布隆过滤器:@user_script:1: ERR 错误的误差率

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

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

但是它一直出错:

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

这是我的 Docker 镜像: 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"
点赞
用户1858556
用户1858556

我刚才在这个链接中查看了错误,代码片段如下:

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

我假设您提供给error_rate的参数无法转换为double值。

2021-06-09 17:02:45