热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

用python从redis的有序集合中一次性删除多个值

最近做的一个东西,需要用python从redis的有序集合中一次性删除多个值;redis的自带方法zrem是支持此功能的#移除多个元素redisZR

最近做的一个东西,需要用python从redis的有序集合中一次性删除多个值;

redis的自带方法zrem是支持此功能的

# 移除多个元素
redis
> ZREM page_rank baidu.com bing.com
(integer)
2

python redis 的api 中也支持

zrem(self, name, *values) Remove member ``values`` from sorted set ``name``
参数 *values 代表 values是一个元组

但是我在用这个方法的时候,一直实现不了删除多个值,代码如下

def zDelByValues(self,key,values):relSet = self._getRelSet(key)if 'false' == relSet:return 'false'return self.getRedisW().zrem(relSet,values)

此时参数 values 可以接收 单个数字,字符串,比如 a.zDelByValues(foo,2) , a.zDelByValues(foo,'2') ,a.zDelByValues(foo,(2)) ,都可以成功,其它情况都会抛出错误;

纠结半天,原来是自己传参传错了;

def zDelByValues(self,key,values):relSet = self._getRelSet(key)if 'false' == relSet:return 'false'return self.getRedisW().zrem(relSet,*values)

上面的代码少了一个"*",一开始受php的影响,以为直接传值就行了,而不需要将符号带进去。以后得注意,不要犯类似的错误。

这样,a.zDelByValues(foo,(2,3,4,5,6,7)) 就可以一次性完成删除多个值的功能。



推荐阅读
author-avatar
Android代码
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有