zoukankan      html  css  js  c++  java
  • Python操作Redis之有序集合

        reids 版本            redis                    2.10.6

      1. import redis     
      2.  
        from idlelib.IOBinding import encoding
      3.  
        from pip.utils import Inf
      4.  
        pool=redis.ConnectionPool(host='192.168.1.106',port=6379,db=0)
      5.  
        r = redis.StrictRedis(connection_pool=pool)
      6.  
        #我们先加入5条数据
      7.  
        p = r.pipeline()
      8.  
        p.zadd('score',90.9,'peter',95,'white',80,'black',70,'tom',100,'sheng')
      9.  
        p.execute()
      10.  
         
      11.  
        #接下来,我们查询一个人的分数,注意,我们存储的时候写入的整数
      12.  
        #其实redis里存储的也是整数,但python取出来后就变成了float
      13.  
        print r.zscore('score', 'peter')
      14.  
         
      15.  
        '''
      16.  
        下面两个函数返回相同的结果,但使用方式是不一样的
      17.  
        zrange 的第2个和第3个参数表示第几行到第几行,zrangebyscore 的第2个和第3个表示从哪个分数范围内
      18.  
        取值,第4个参数表示从第几行开始取,第5个参数表示取几个值回来
      19.  
        zrange的第四个参数表示降序还是升序
      20.  
        最后一个参数为True表示带分数返回,其实最后面还可以写一个参数,用来处理返回的分数,例如,intern
      21.  
        这原本是一个函数,可以放到最后,如果不写,就默认是用float
      22.  
        除了这两个函数外,还有zrevrange 和 zrevrangebyscore 这个一看名称就能知道是做什么用的了
      23.  
        '''
      24.  
        print r.zrange('score', 0, 2, False, True)
      25.  
        print r.zrangebyscore('score', 0, 100, 0, 3, True)
      26.  
         
      27.  
        #如果想获得全部的分数呢,0 到-1就可以了
      28.  
        print r.zrange('score', 0, -1, False, True)
      29.  
         
      30.  
        #想获得分数高于80分(等于也行)的从小到达排序的前三名,有点绕。。。
      31.  
        print r.zrangebyscore('score', 80, Inf, 0, 3, True)
      32.  
         
      33.  
        #小于某个分数值的表示方法,float('-Inf')表示无穷小
      34.  
        print r.zrangebyscore('score', float('-Inf'), 95, 0, 4, True)
      35.  
         
      36.  
        #现在给某个值加1
      37.  
        print r.zincrby('score', 'peter',1)
      38.  
         
      39.  
        #获得一个有序集合的元素的个数
      40.  
        print r.zcard('score')
      41.  
         
      42.  
        #既然是有序,我们最希望能看到一个元素的分数排名
      43.  
        print '排名'
      44.  
        print r.zrank('score', 'black')
      45.  
        print r.zrevrank('score', 'black')
      46.  
         
      47.  
        #获得一个分数范围内的元素的个数
      48.  
        print r.zcount('score', 78, 93)
      49.  
         
      50.  
        #删除掉一个元素
      51.  
        print r.zrem('socre','peter')
      52.  
         
      53.  
        #按分数区间进行删除
      54.  
        print r.zremrangebyscore('score', 70, 90)
      55.  
         
      56.  
        #分数从小到达排序,然后删除指定排名范围内的数据
      57.  
        print r.zremrangebyrank('score', 0, 2)
  • 相关阅读:
    PLAYBOOK 命令统计资源利用率 输出本地文件 flask展示
    如何对PFX证书转换成PEM格式证书
    Openshift学习
    Playbook handlers使用
    网络空间安全基础篇(2)----wireshark
    网络空间安全基础篇(1)----nmap的使用
    opencv——图像掩码操作
    opencv图像阈值操作
    在图片上绘制图形和添加文字
    使用opencv去操作树莓派摄像头保存图片和视频
  • 原文地址:https://www.cnblogs.com/zhangshijiezsj/p/14174876.html
Copyright © 2011-2022 走看看