`

redis数据类型之有序集合 sorted set

阅读更多
Redis 有序集合(sorted set)
Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
有序集合的成员是唯一的,但分数(score)却可以重复。
集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。



redis 127.0.0.1:6379> zadd books 1 java
(integer) 1
redis 127.0.0.1:6379> zadd books 2 c++
(integer) 1
redis 127.0.0.1:6379> zadd books 3 c
(integer) 1
redis 127.0.0.1:6379> zadd books 4 lua
(integer) 1
redis 127.0.0.1:6379> zadd books 5 ruby
(integer) 1
redis 127.0.0.1:6379> zrange books 0 6
1) "java"
2) "c++"
3) "c"
4) "lua"
5) "ruby"
redis 127.0.0.1:6379> zrange books 0 6 withscores
1) "java"
2) "1"
3) "c++"
4) "2"
5) "c"
6) "3"
7) "lua"

以上通过命令 ZADD 向 redis 的有序集合中添加了三个值并关联上分数。
zaddkey score1 member1 [score2 member2]
向有序集合添加一个或多个成员,或者更新已存在成员的分数


获取成员数
redis 127.0.0.1:6379> zcard books
(integer) 5

zcount key min max 获取指定区间分数的成员数
redis 127.0.0.1:6379> zcount books 2 5
(integer) 4



zincrby 命令对有序集合中指定成员的分数加上增量 increment
可以通过传递一个负数值 increment ,让分数减去相应的值,比如 zincrby key -5 member ,就是让 member 的 score 值减去 5

。当 key 不存在,或分数不是 key 的成员时, zincrby key increment member 等同于 zadd key increment member当key不是有序

集类型时,返回一个错误。分数值可以是整数值或双精度浮点数。
示例:

redis 127.0.0.1:6379> zincrby books 1 1
"1"
redis 127.0.0.1:6379> zrange books 0 6  withscores
1) "1"
2) "1"
3) "java"
4) "1"
5) "c++"
6) "2"
7) "c"
"3"
9) "lua"
10) "4"
11) "ruby"
12) "5"



ZINTERSTORE destination numkeys key [key ...]
计算给定的一个或多个有序集的交集并将结果集存储在新的有序集合 key 中



ZLEXCOUNT key min max
在有序集合中计算指定字典区间内成员数量



ZRANGE key start stop [WITHSCORES]
通过索引区间返回有序集合成指定区间内的成员



ZRANGEBYLEX key min max [LIMIT offset count]
通过字典区间返回有序集合的成员



ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT]
通过分数返回有序集合指定区间内的成员



ZRANK key member
返回有序集合中指定成员的索引



ZREM key member [member ...]
移除有序集合中的一个或多个成员




ZREMRANGEBYLEX key min max
移除有序集合中给定的字典区间的所有成员



ZREMRANGEBYRANK key start stop
移除有序集合中给定的排名区间的所有成员



ZREMRANGEBYSCORE key min max
移除有序集合中给定的分数区间的所有成员



ZREVRANGE key start stop [WITHSCORES]
返回有序集中指定区间内的成员,通过索引,分数从高到底



ZREVRANGEBYSCORE key max min [WITHSCORES]
返回有序集中指定分数区间内的成员,分数从高到低排序




ZREVRANK key member
返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序




ZSCORE key member
返回有序集中,成员的分数值


ZUNIONSTORE destination numkeys key [key ...]
计算给定的一个或多个有序集的并集,并存储在新的 key 中


ZSCAN key cursor [MATCH pattern] [COUNT count]
迭代有序集合中的元素(包括元素成员和元素分值)


分享到:
评论

相关推荐

    Redis数据类型.docx

    Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

    redis数据类型及应用场景知识点总结

    Redis支持5种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。 一、string 简介:Strings数据类型是最常用、简单的key-value类型,普通的key/ value 存储都可以...

    redis可视化工具、免费.中文

    Sorted Set: 有序集合 Redis 发布订阅 Redis 事务 Redis 脚本 Redis 服务器 Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。 Redis不仅仅支持简单的key-value类型的数据...

    Redis-x64-5.0.10

    它支持存储的value类型很多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些...

    Redis非关系型数据库笔记-数据持久化-主从同步-缓存-笔记-五大数据类型-三大特殊数据类型

    数据类型丰富:Redis支持多种数据类型,如字符串(string)、散列(hash)、列表(list)、集合(set)和有序集合(sorted set)等。这使得Redis能够灵活地应对不同的应用场景。 速度极快:Redis的速度非常快,每秒...

    Redis 数据类型

    Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。 String(字符串) string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型...

    Redis各个数据类型的使用场景.pdf

    Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。每种数据类型的使用场景各不相同

    Redis 数据类型的详解

    Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。 String(字符串) string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个...

    史上最详细Redis入门教程,轻松入门Reids

    Redis是一个非常流行的开源内存数据库,它以其出色的性能和丰富的功能而闻名。以下是一个详细的Redis入门教程,它将帮助...- **有序集合(Sorted Set)**:一个有序集合,每个元素都有分数与之关联。 - **哈希(Hash)*

    windows-redis_5.0.14.1

    新增加的Stream(流)数据类型,这样redis就有了6大数据类型,另外五种是String(字符串),Hash(哈希),List(列表),Set(集合)及Zset(sorted set有序集合)。它弥补了其它5种数据类型不能实现的功能,比如List...

    详解Redis 数据类型

    Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。 String(字符串) string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,...

    Redis可视化工具安装包(redis管理视图)

    和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更...

    Redis_Window

    redis的数据类型有:字符串(string)、哈希(Map)、列表(list)、集合(sets)和有序集合(sorted sets)等数据类型。 redis与其他key-value缓存产品有三个特点: 1、redis支持持久化、可以将内存里面的数据...

    Redis-基本数据类型与内部存储结构

    Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。这五种数据类型在内部的存储格式存在多种。

    redisCluster.zip

    和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更...

    redis学习pdf

    和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更...

    redis所用jar包

    和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更...

    redis学习相关资料

    和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更...

    RedisDemo.rar

    Redis五大数据类型string(字符串),hash(哈希,字典),list(列表),set(集合)及zset(sorted set:有序集合)的演示示例 以及Redis服务安装文件

    redis架构图

    和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更...

Global site tag (gtag.js) - Google Analytics