博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用python从redis的有序集合中一次性删除多个值
阅读量:5146 次
发布时间:2019-06-13

本文共 971 字,大约阅读时间需要 3 分钟。

最近做的一个东西,需要用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)) 就可以一次性完成删除多个值的功能。

转载于:https://www.cnblogs.com/mingaixin/archive/2013/01/25/2877057.html

你可能感兴趣的文章
处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“Manag
查看>>
01: socket模块
查看>>
mysql触发器
查看>>
淌淌淌
查看>>
web页面实现指定区域打印功能
查看>>
使用PHP拆分中文字符串的方法(收藏) 小节
查看>>
win10每次开机都显示“你的硬件设置已更改,请重启电脑……”的解决办法
查看>>
VMware环境和Window环境进行网络连接的问题
查看>>
macOS10.12允许所有来源设置
查看>>
C++有关 const & 内敛 & 友元&静态成员那些事
查看>>
函数积累
查看>>
python搜索引擎(转)
查看>>
关于height,line-height导致的样式混乱的问题
查看>>
《SEO实战密码》读后一点感受
查看>>
bzoj 4815 [Cqoi2017]小Q的表格——反演+分块
查看>>
Swift 入门之简单语法(六)
查看>>
shim和polyfill有什么区别
查看>>
Failed to load the JNI shared library “E:/2000/Java/JDK6/bin/..jre/bin/client/jvm.dll
查看>>
〖Python〗-- IO多路复用
查看>>
栈(括号匹配)
查看>>