有序集合存储着成员和分值之间的映射,并且提供了分值处理命令,以及根据分值大小有序的获取或扫描成员和分值的命令

(常用命令)

ZADD : ZADD key-name score member [score member ...] ------------将带有给定分值的成员添加到有序集合里

ZREM : ZREM key-name member [member ...] --------------------------从有序集合里移除给定的成员,并返回被移除成员的数量

ZCARD : ZCARD key-name  ------------------------------------------------返回有序集合包含的成员数量

ZINCRBY : ZINCRBY key-name increment member --------------------将member成员的分值加上increment

ZCOUNT : ZCOUNT key-name min max ---------------------------------返回分值介于min和max之间的成员数量

ZRANK : ZRANK key-name member ------------------------------------返回成员member在有序集合中的排名

ZSCORE : ZSCORE key-name member --------------------------------返回成员member的分值

ZRANGE : ZRANGE key-name start stop [WITHSCORE] ------------返回有序集合中排名介于start和stop之间的成员,如果给定了可选的WITHSCORE选项,那么命令会将成员的分值也一并返回

>>> conn.zadd('zset-key','a',3,'b',2,'c',1)
3
>>> conn.zcard('zset-key')
5
>>> conn.delete('zset-key')
1
>>> conn.zadd('zset-key','a',3,'b',2,'c',1)
3
>>> conn.zcard('zset-key')
3
>>> conn.zincrby('zset-key','c',3)
4.0
>>> conn.zscore('zset-key','b')
2.0
>>> conn.zrank('zset-key','c')
2
>>> conn.zcount('zset-key',0,3)
2L
>>> conn.zrem('zset-key','c')
1
>>> conn.zrange('zset-key',0,-1,withscores=True)
[('b', 2.0), ('a', 3.0)]

(有序集合在一定范围内获取数据和删除数据命令,以及并集和交集命令)

ZREVRNK : ZREVRANK key-name member --------------返回有序集合里成员member的排名,成员按照分值从大到小排列

ZREVRANGE  : ZREVRANGE key-name start stop [WHISTSCORES] -----------返回有序集合给定排名范围内的成员,成员按照分值从大到小排列

ZRABGEBYSCORE : ZRABGEBYSCORE key min max [WITHSCORES] [LIMIT offset count] --------返回有序集合中,分值介于min和max之间的所有成员

ZREVRANGEBYSCORE : ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count] -----获取有序集合中分值介于min和max之间的所有成员,并按照分值从大到小的顺序返回它们

ZREMRANGEBYRANK : ZREMRANGEBYRANK  key-name start stop ---------------------移除有序集合中排名介于start和end之间的所有成员

ZREMRANGEBYSCORE : ZREMRANGEBYSCORE  key-name min max -------------------移除有序集合中分值介于min和max之间的所有成员

ZINTERSTORE : ZINTERSTORE  dest-key key-count key [key...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]--------------对给定的有序集合执行类似于集合的交集运算

ZUNIONSTORE : ZUNIONSTORE dest-key key-count key [key...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]--------------对给定的有序集合执行类似于集合的并集运算

>>> import redis
>>> conn = redis.Redis(host='192.168.146.129',port=6379,db=0)
>>> conn.zadd('zset-1','a',1,'b',2,'c',3)
3
>>> conn.zadd('zset-2','b',4,'c',1,'d',0)
3
>>> conn.zinterstore('zset-i',['zset-1','zst-2'])
0L
>>> conn.zinterstore('zset-i',['zset-1','zset-2'])
2L
>>> conn.zrange('zset-i',0,-1,withscores=True)
[('c', 4.0), ('b', 6.0)]
>>> conn.zunionstore('zset-u',['zset-1','zset-2'],aggregate='min')
4L

Redis有序集合操作的更多相关文章

  1. redis 有序集合(zset)函数

    redis 有序集合(zset)函数 zAdd 命令/方法/函数 Adds the specified member with a given score to the sorted set stor ...

  2. Redis 有序集合(sorted set),发布订阅,事务,脚本,连接,服务器(三)

    Redis 有序集合(sorted set) Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数.redis正是通过 ...

  3. redis有序集合数据类型---sortedset

    一.概述 redis有序集合和集合一样,也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数. redis正式通过分数来为集合中的重圆进行从小到大的 ...

  4. 数据结构与算法简记--redis有序集合实现-跳跃表

    跳表 定义 为一个值有序的链表建立多级索引,比如每2个节点提取一个节点到上一级,我们把抽出来的那一级叫做索引或索引层.如下图所示,其中down表示down指针,指向下一级节点.以此类推,对于节点数为n ...

  5. Redis 有序集合(sorted set)

    Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数.redis正是通过分数来为集合中的成员进行从小到大的排序. 有序 ...

  6. Redis有序集合

    Redis有序集合类似Redis集合存储在设定值唯一性.不同的是,一个有序集合的每个成员带有分数,用于以便采取有序set命令,从最小的到最大的分数有关. Redis 有序set添加,删除和测试中的O( ...

  7. redis有序集合的使用

    Redis 有序集合(sorted set) Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数.redis正是通过 ...

  8. 基于redis有序集合,实现简单的延时任务

    基于redis有序集合,实现简单的延时任务 延时任务的场景很多,开发过程中我们经常会遇到,比如说: 1.订单未付款,5分钟后自动取消,这是电商网站非常普遍的需求: 2.用户创建订单不付款,3分钟后自动 ...

  9. redis(十四):Redis 有序集合(sorted set)

    Redis 有序集合(sorted set) Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数.redis正是通过 ...

随机推荐

  1. Windows核心编程:第9章 用内核对象进行线程同步

    Github https://github.com/gongluck/Windows-Core-Program.git //第9章 用内核对象进行线程同步.cpp: 定义应用程序的入口点. // #i ...

  2. Grid++Report报表工具C/S实战篇(五)

    一.课程介绍 本次分享课程属于<C#高级编程实战技能开发宝典课程系列>中的第五部分,阿笨后续会计划将实际项目中的一些比较实用的关于C#高级编程的技巧分享出来给大家进行学习,不断的收集.整理 ...

  3. MVC所有的ActionResult

    一.所有的Controller都继承自System.Web.Mvc.Controller 目前ASP.NET MVC3默认提供了多种ActionResult的实现,在System.Web.Mvc命名空 ...

  4. JQuery Mobile - 导航栏选中状态代码

    class="ui-btn-active" 参考: https://wizardforcel.gitbooks.io/w3school-jqmobile/content/8.htm ...

  5. leetcode 152. 乘积最大子序列 java

    题目: 给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数). 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6. ...

  6. “全栈2019”Java多线程第三十一章:中断正在等待显式锁的线程

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...

  7. CF1082解题报告

    CF1082A Vasya and Book 模拟一下即可 \(Code\ Below:\) #include <bits/stdc++.h> using namespace std; c ...

  8. 【kuangbin专题】计算几何_半平面交

    1.poj3335 Rotating Scoreboard 传送:http://poj.org/problem?id=3335 题意:就是有个球场,球场的形状是个凸多边形,然后观众是坐在多边形的边上的 ...

  9. spring cloud学习(五) 配置中心

    Spring Cloud Config为服务端和客户端提供了分布式系统的外部化配置支持.配置服务中心采用Git的方式存储配置文件,因此我们很容易部署修改,有助于对环境配置进行版本管理. 一.配置中心 ...

  10. iOS-button利用block封装按钮事件【runtime 关联】

    用block封装最常用的就是网络请求的回调,其实也可以结合category封装button的按钮事件,同时利用runtime的对象关联: UIButton+wkjButton.h 文件 #import ...