在使用 Spring Data Redis 处理 Redis 时,我尝试扫描服务器中的哈希数据(类似于 CLI 中的 HSCAN)-
Cursor<Entry<Object,Object>> scan = redisTemplate.opsForHash().scan("student", new ScanOptionsBuilder().count(0).match("*").build());
运行时出现以下错误 -
redis.clients.jedis.exceptions.JedisDataException: ERR syntax error
谁能帮我解决这个问题。
有很多相关讨论,但没有一个提供明确的答案。
最佳答案
您应该使用 count > 0,或者根本不使用 count(默认为 10)。
查看ScanOptions.java ,如果使用 count,则将其传递给命令而不进行任何检查。
快速检查 redis-cli 显示 COUNT 0
抛出 ERR 语法错误
。
> hset hash1 f v
(integer) 1
> hscan hash1 0 MATCH * COUNT 0
(error) ERR syntax error
> hscan hash1 0 MATCH * COUNT 1
1) "0"
2) 1) "f"
2) "v"
参见SCAN > The COUNT option更多细节。虽然它没有声明它必须大于 0,但它应该大于 0,这是有道理的。
关于java - 使用 Spring Data Redis 在 Redis 中执行 SCAN 操作时出现 ERR 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59563986/