报错JedisDataException: ERR wrong number of arguments for ‘rpop‘ command

谁践踏了优雅 2023-10-07 20:58 140阅读 0赞

报错JedisDataException: ERR wrong number of arguments for ‘rpop’ command

  1. //取单条
  2. String str = redisTemplate.opsForList().rightPop(CACHE_KEY);
  3. //取多条
  4. List<String> list = redisTemplate.opsForList().rightPop(CACHE_KEY, 5);

Springboot使用Redis使用opsForList().rightPop取单条的时候是正常的,取多条的时候报错如下:

  1. redis.clients.jedis.exceptions.JedisDataException: ERR wrong number of arguments for 'rpop' command
  2. at redis.clients.jedis.Protocol.processError(Protocol.java:142) ~[jedis-3.8.0.jar:na]
  3. at redis.clients.jedis.Protocol.process(Protocol.java:176) ~[jedis-3.8.0.jar:na]
  4. at redis.clients.jedis.Protocol.read(Protocol.java:230) ~[jedis-3.8.0.jar:na]
  5. at redis.clients.jedis.Connection.readProtocolWithCheckingBroken(Connection.java:352) ~[jedis-3.8.0.jar:na]
  6. at redis.clients.jedis.Connection.getBinaryMultiBulkReply(Connection.java:304) ~[jedis-3.8.0.jar:na]
  7. at redis.clients.jedis.BinaryJedis.rpop(BinaryJedis.java:1702) ~[jedis-3.8.0.jar:na]
  8. at org.springframework.data.redis.connection.jedis.JedisInvoker.lambda$just$5(JedisInvoker.java:130) ~[spring-data-redis-2.7.5.jar:2.7.5]
  9. at org.springframework.data.redis.connection.jedis.JedisConnection.lambda$doInvoke$2(JedisConnection.java:181) ~[spring-data-redis-2.7.5.jar:2.7.5]
  10. at org.springframework.data.redis.connection.jedis.JedisConnection.doWithJedis(JedisConnection.java:824) ~[spring-data-redis-2.7.5.jar:2.7.5]
  11. at org.springframework.data.redis.connection.jedis.JedisConnection.doInvoke(JedisConnection.java:165) ~[spring-data-redis-2.7.5.jar:2.7.5]
  12. at org.springframework.data.redis.connection.jedis.JedisConnection.lambda$new$0(JedisConnection.java:74) ~[spring-data-redis-2.7.5.jar:2.7.5]
  13. at org.springframework.data.redis.connection.jedis.JedisInvoker$Synchronizer.invoke(JedisInvoker.java:1018) ~[spring-data-redis-2.7.5.jar:2.7.5]
  14. at org.springframework.data.redis.connection.jedis.JedisInvoker.just(JedisInvoker.java:130) ~[spring-data-redis-2.7.5.jar:2.7.5]
  15. at org.springframework.data.redis.connection.jedis.JedisListCommands.rPop(JedisListCommands.java:284) ~[spring-data-redis-2.7.5.jar:2.7.5]

问题原因是redis版本小于6.2时并不支持该语法,而我本地的redis是3.05版本的。只有redis的版本大于等于6.2时,才支持rightPop(key, count)和leftPop(key, count),不然就只支持单条取的rightPop(key)和leftPop(key)了。

发表评论

表情:
评论列表 (有 0 条评论,140人围观)

还没有评论,来说两句吧...

相关阅读