• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Redis > Redis有序集合类型的常用命令小结

Redis有序集合类型的常用命令小结

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了redis常用数据类型,redis数据类型,redis 查看key类型,redis支持的数据类型,redis类型等相关知识,希望本文的分享对您有所帮助

一、有序集合类型

有序集合类型,大家从名字上应该就可以知道,实际上就是在集合类型上加了个有序而已。Redis中的有序集合类型,实际上是在集合类型上,为每个元素都关联一个分数,有序实际上说的是分数有序,我们根据分数的范围获取集合及其他操作。集合的元素依然是不能够相同的,但是分数可以相同。

下面列举有序集合和类型和列表类型的相似处:

      ①两者都是有序的(废话!)

      ②两者都可以获得某一范围的元素

下面列举区别:

      ①列表是链表实现的,靠近两边的数据读取极快,而元素过多后获取中间元素的速度则会很慢;有序集合类型使用的散列表和跳跃表(Skip list)实现的,所以读取哪部分的数据都差不多(时间复杂度是O(logN))。

      ②列表中不能简单的调整元素的位置,但是有序集合可以(通过改变分数)。

      ③有序集合比列表费内存(要存储分数、散列、跳跃表)。

二、Redis有序集合的常用命令

Redis有序集合的常用命令有:zadd,zrange,zremrangebyrank,zremrangebyscore,zcard等,这些都是使用频率比较高的,还有一些参数的说明等。下面来看看一起看看吧。

1、ZADD命令

将一个或多个 member 元素及其 score 值加入到有序集 key 当中。

如果某个 member 已经是有序集的成员,那么更新这个 member 的 score 值,并通过重新插入这个 member 元素,来保证该 member 在正确的位置上。

score 值可以是整数值或双精度浮点数。

先用zadd命令批量添加一些元素到有序集合中,后面的操作都是基于这个集合进行。

127.0.0.1:6379> zadd myzadd 1 a 2 b 3 c 4 d 5 e 6 f 7 d 8 e 9 f 10 tanteng.me
(integer) 7
</div>

如图所示:

有序集合最特别的地方在于score,有了分值可以做很多事情,这个score不仅可以理解为分值,有时也会存时间戳,或者ip的整形形式,可以灵活运用。

2、ZRANGE命令

语法:ZRANGE key start stop [WITHSCORES]

zrange命令用于返回有序集合中给定区间的元素。start从0开始,stop是结束下标,如果是负数表示从倒数开始,-1倒数第一个,-2倒数第二个……

看下面的操作一目了然。

127.0.0.1:6379> zrange myzadd 0 1
1) "a"
2) "b"
127.0.0.1:6379> zrange myzadd 0 5
1) "a"
2) "b"
3) "c"
4) "d"
5) "e"
6) "f"
127.0.0.1:6379> zrange myzadd 1 5
1) "b"
2) "c"
3) "d"
4) "e"
5) "f"
127.0.0.1:6379> zrange myzadd 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
5) "e"
6) "f"
7) "tanteng.me"
</div>

加上WITHSCORES参数显示分值:

127.0.0.1:6379> zrange myzadd 0 -1 WITHSCORES
 1) "a"
 2) "1"
 3) "b"
 4) "2"
 5) "c"
 6) "3"
 7) "d"
 8) "7"
 9) "e"
10) "8"
11) "f"
12) "9"
13) "tanteng.me"
14) "10"
</div>

3、ZREMRANGEBYRANK命令

语法:ZREMRANGEBYRANK key start stop

移除有序集中指定排名(rank)区间内的所有成员。start从0开始,stop可以为负数,表示倒过来第几位。

127.0.0.1:6379> zremrangebyrank myzadd 0 2
(integer) 3
</div>

执行这个命令就删除了前三个元素a,b,c.

4、ZREMRANGEBYSCORE命令

语法:ZREMRANGEBYSCORE key min max

移除有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。

127.0.0.1:6379> zremrangebyscore myzadd 7 8
(integer) 2
</div>

这样一来就把分值是7和8的元素d,e移除了.

ZREMRANGEBYRANK和ZREMRANGEBYSCORE从字面上很好理解,都是移除元素,一个根据下标,一个根据分值。

5、ZCARD命令

语法:ZCARD key

返回有序集合的基数。

127.0.0.1:6379> zcard myzadd
(integer) 2
</div>

经过前面的删除元素操作,现在只剩2个元素了。

6、ZCOUNT命令

语法:ZCOUNT key min max

ZCOUNT命令和ZCARD命令的不同是,ZCOUNT支持根据范围返回元素个数。

由于集合元素都差不多删没了,重新添加一组元素:

127.0.0.1:6379> zadd new 100 www.baidu.com 900 www.tanteng.me 12 www.yahoo.com 90 www.xunlei.com 88 www.juanpi.com
(integer) 5
</div>

如图所示:

现在返回分值在80和100之间的成员数量。

127.0.0.1:6379> zcount new 80 100
(integer) 3
</div>

返回3个。

在Redis里面,还有个参数inf,-inf表示第一个成员,+inf表示最后一个。

127.0.0.1:6379> zcount new 80 +inf
(integer) 4
</div>

这里就返回4个数量,+inf这里表示没有限制最高分值的意思。

总结

以上就是关于Redis有序集合类型常用命令的全部内容,文章总结的还是很详细的,希望能对大家的学习或者工作带来一些便捷,如果有大家有疑问也可以留言交流,谢谢大家对的支持。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Redis中五种数据类型简单操作
  • Redis集合类型的常用命令小结
  • Redis列表类型的常用命令小结
  • Redis字符串类型的常用命令小结
  • Redis有序集合类型的常用命令小结
  • redis常用命令、常见错误、配置技巧等分享
  • Redis总结笔记(一):安装和常用命令
  • redis常用命令小结

相关文章

  • 2017-05-11在CenOS系统下安装和配置Redis数据库的教程
  • 2017-05-11Redis数据库中实现分布式锁的方法
  • 2017-05-11Redis简介
  • 2017-05-11Redis中5种数据结构的使用场景介绍
  • 2017-05-11Redis操作命令总结
  • 2017-05-11Redis实现多人多聊天室功能
  • 2017-05-11从MySQL到Redis的简单数据库迁移方法
  • 2017-05-11Redis list 类型学习笔记与总结
  • 2017-05-11详解利用redis + lua解决抢红包高并发的问题
  • 2017-10-15redis 自动关闭订单

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • Redis字符串类型的常用命令小结
    • Windows下Redis安装配置教程
    • 关于redis启动时报错:Could not get a resource from the pool。
    • Redis实现唯一计数的3种方法分享
    • Redis系列(三)--过期策略
    • Redis教程(一):Redis简介
    • 超强、超详细Redis数据库入门教程
    • Redis和Memcached的区别详解
    • Redis配置文件详解
    • 让Redis在你的系统中发挥更大作用的几点建议

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有