设为首页 收藏本站
查看: 1103|回复: 0

[经验分享] redis删除有序集合部分过期元素

[复制链接]

尚未签到

发表于 2018-11-7 08:23:34 | 显示全部楼层 |阅读模式
  最近老大让看看redis中数据类型,list中单个element元素,能不能设置过期(不是针对整个list),整个list是可以直接设置过期的。网上搜结果list单个元素不支持自动过期设置
  expire 列表名 时间
  需求:就是把超过指定时间的列表元素数据直接删除
  考虑如下折中办法
  ①每隔5分钟,就新建一个列表,使用过期函数把超过5分钟的list,都删掉。
  ②使用有序集合,来实现。(每个有序集合 的成员都关联着一个评分,这个评分用于把有序集 合中的成员按最低分到最高分排列。)思路:将score 设置成时间戳,让后通过zremrangebyscore来删除
  example :
  添加元素
  ZADD key score member [[score member] [score member] ...]
  删除元素
  ZREMRANGEBYSCORE key min max
  下面自己用有序集合来测试案例
  ##添加元素,休眠5秒钟,然后在添加数据
filename:redisadd.py  
#!/usr/bin/python
  
import redis
  
import time
  
r = redis.StrictRedis(host='127.0.0.1', port=6379)
  
key='myzset'
  
#r.zadd('myzset',0,"someting without expiration")
  
for i in range(10):
  value="insert "+str(i)+" value"
  r.zadd(key,time.time(),value)
  
time.sleep(5)
  
for s in "study":
  r.zadd(key,time.time(),s)
  
print r.zrange('myzset',0,-1,withscores=True)
  ##主要把3秒之前添加的数据删除
filename:redisdel.py  
#!/usr/bin/python
  
import redis
  
import time
  
r = redis.StrictRedis(host='127.0.0.1', port=6379)
  
key="myzset"
  
r.zremrangebyscore('myzset',0,int(time.time())-3)
  
print r.zrange(key,0,-1,withscores=True)



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-631728-1-1.html 上篇帖子: golang redis驱动的比较 下篇帖子: MySQL迁移到Redis-shenliyang
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表