开发者社区> 问答> 正文

redis list可以删除指定内容记录问题

由于个别项目往redis的某个list类型的key里上传了部分垃圾数据,我们需要清理掉这部分数据,通过脚本获取到了list所有数据,过滤出垃圾数据后计划使用lrem命令删除,但是现在lrem命令执行时报错。错误内容如下:

redis.exceptions.ResponseError: value is not an integer or out of range

请问一下这类因为值过长导致的删除错误如何解决?是否有其他redis的API支持这类数据删除场景?

展开
收起
捷顺梁锋 2018-08-20 15:42:49 2217 0
2 条回答
写回答
取消 提交回答
  • 这里不是因为值过长造成的,而是语法出错造成的,你应该是python调用redis的时候出现的,redis在python中是StrictRedis的一个子类,为了兼容前带版本而出现的,其语法会和我们用-cli时的语法稍有区别,其中就包括lrem,建议你用 StrictRedis再来试一试
    2019-04-09 10:35:06
    赞同 展开评论 打赏
  • 请仔细检查你使用的命令参数,LREM的正确用法如下:
    LREM listkey 0 "value"
    该参数的意义为从索引值0开始删除listkey中所有值为"value"的项,你得到的错误很可能是索引值即上述0的位置给的不是整数。
    2018-08-20 16:10:11
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Redis在唯品会的应用实践——架构演进与功能定制 立即下载
微博的Redis定制之路 立即下载
云数据库Redis版的开源之路 立即下载