Redis数据结构(六)
Redis数据结构(Sort-set)(游戏排名和微博热点话题排名上应用):
特点:可存储有序但不重复的数据,根据分数指定存储顺序
1 Sort-set和Set的区别:
(1)sort的每个成员都是以一个分数的形式在redis中存储的,redis通过分数对集合中的元素进行从小到大的排序。
(2)成员是唯一的,但是分数是可以重复的。
(3)删除增加,更新一个成员都是非常快速的。
(4)时间复杂度为集合中成员个数的一个对数
2 Sort-set中的成员在集合中的位置是有序的:
存储Sort-set常用命令:
(1)添加元素
zadd 列名 [分数 值]...
zadd mysort 80 张三 90 里斯 100 龙舞
注:如果分数已存在,会用新的分数替换原有的分数
(2)获得元素
zscore mysort 张三
查分数:zscore 列名 值
zscore mysort 张三
查数量:zcard 列名
zcard mysort
(3)删除元素
单删:zrem 列名 值...;范围删除:zremrangebyrank 列名 [begin,end]
zrem mysort 张三 里斯
(4)范围查询
升序查值:zrange 列名 [begin,end] <withscores>(两者可为正负数,负数则从反方向开始计数,正数从0开始,负数从-1开始)(withscores带分数,可选项)
zrange mysort 0 -1
zrange mysort 0 -1 withscores 由小到大排序
降序查值:zrevrange 列名 [begin,end] <withscores>(两者可为正负数,负数则从反方向开始计数,正数从0开始,负数从-1开始)(withscores带分数,可选项)
zrevrange mysort 0 -1
zrevrange mysort 0 -1 withscores 由大到小排序
排名范围删除
zremrangebyrank mysort 0 4
按照分数删除
zremrangebyscore mysort 80 100
(5)扩展名令
返回某个范围的成员,并按照由低到高排序
分数查值:zrangebyscore 列名 [begin,end] <withscores>
zrangebyscore mysort 0 100 withscores
分页查值:zrangebyscore 列名 [begin,end] <withscores limit [begin,end]>
zrangebyscore mysort 0 100 withscores limit 0 2
设置指定成员,增加的分数
zincrby mysort 3 里斯
查看下
zscore mysort 里斯
获取分数在某个之间的成员的个数
zcount mysort 80 90
使用场景
(1)如大型在线游戏积分排行榜
(2)构建索引数据
Redis数据结构(六)的更多相关文章
- Redis学习系列六ZSet(有序列表)及Redis数据结构的过期
一.简介 ZSet可以说是Redis中最有趣的数据结构了,因为他兼具了Hash集合和Set的双重特性,也是用的最多的,保证了value值的唯一性的同时,,同时又保证了高性能,最主要的是还可以给每个Va ...
- 峰Redis学习(6)Redis 数据结构(sorted-set的操作)
第六节:Redis 数据结构之sorted-set 类型 存储Sorted-Set Sorted-Set和Set的区别 Sorted-Set中的成员在集合中的位置是有序的 存储Sorted-s ...
- Redis 数据结构使用场景
转自http://get.ftqq.com/523.get 一.redis 数据结构使用场景 原来看过 redisbook 这本书,对 redis 的基本功能都已经熟悉了,从上周开始看 redis 的 ...
- Redis数据结构
Redis数据结构 Redis数据结构详解(一) 前言 Redis和Memcached最大的区别,Redis 除啦支持数据持久化之外,还支持更多的数据类型而不仅仅是简单key-value结构的数据 ...
- Redis数据结构底层知识总结
Redis数据结构底层总结 本篇文章是基于作者黄建宏写的书Redis设计与实现而做的笔记 数据结构与对象 Redis中数据结构的底层实现包括以下对象: 对象 解释 简单动态字符串 字符串的底层实现 链 ...
- Redis 数据结构与内存管理策略(上)
Redis 数据结构与内存管理策略(上) 标签: Redis Redis数据结构 Redis内存管理策略 Redis数据类型 Redis类型映射 Redis 数据类型特点与使用场景 String.Li ...
- Redis 数据结构与内存管理策略(下)
Redis 数据结构与内存管理策略(下) 标签: Redis Redis数据结构 Redis内存管理策略 Redis数据类型 Redis类型映射 Redis 数据类型特点与使用场景 String.Li ...
- Redis数据结构之intset
本文及后续文章,Redis版本均是v3.2.8 上篇文章<Redis数据结构之robj>,我们说到redis object数据结构,其有5中数据类型:OBJ_STRING,OBJ_LIST ...
- Redis数据结构之robj
本文及后续文章,Redis版本均是v3.2.8 我们知道一个database内的这个映射关系是用一个dict来维护的.dict的key固定用一种数据结构来表达,这这数据结构就是动态字符串sds.而va ...
随机推荐
- Spring中FactoryBean与BeanFactory的区别
版本:spring-framework-4.1 一概述 BeanFactory 与 FactoryBean的区别, 两个名字很像,面试中也经常遇到,所以容易搞混,现从源码以及示例两方面来分析. 二.源 ...
- Jmeter执行Java请求
Jmeter执行Java请求(QQ交流群:577439379) 一.打开Eclipse,创建一个Java工程 二.拷贝jmeter所依赖的jar包 将jmeter中,\lib\ext目录下的Apach ...
- wamp 配置多站点访问
1:在f:\wamp\bin\apache\apache2.2.21\conf目录下打开 httpd.conf 查找到 #include conf/extra/httpd-vhosts.conf 把前 ...
- 转 shell 命令 http://www.cnblogs.com/me115/p/3427319.html
http://www.cnblogs.com/me115/p/3427319.html 本文将介绍Linux下使用Shell处理文本时最常用的工具:find.grep.xargs.sort.uniq. ...
- 关于正则表达式 C#
读懂正则表达式就这么简单 一 前言 对于正则表达式,相信很多人都知道,但是很多人的第一感觉就是难学,因为看第一眼时,觉得完全没有规律可寻,而且全是一堆各种各样的特殊符号,完全不知所云. 其实只是对 ...
- webpack和webpack-dev-server安装配置
本文转载自:https://www.cnblogs.com/xuehaoyue/p/6410095.html 跟着Webpack傻瓜式指南(一)这个教程在安装webpack和webpack-dev-s ...
- Call to your teacher
链接:https://www.nowcoder.net/acm/contest/76/F来源:牛客网 Call to your teacher 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/ ...
- linux命令killall 、kill 、pkill 命令详解
转自:http://www.cnblogs.com/rsky/p/4886043.html killall 命令 Linux系统中的killall命令用于杀死指定名字的进程(kill processe ...
- Python开发之用户密码存储
在各种线上应用中,用户名密码是用户身份认证的关键,它的重要性不言而喻.一方面,作为保护用户敏感数据的钥匙来说,一旦被破解,系统将敞开大门完全不设防.另一方面,密码这把钥匙本身就是非常敏感的数据:大多数 ...
- linux中grep工具
正则表达式 以前我们用grep在一个文件中找出包含某些字符串的行,比如在头文件中找出一个宏定义.其实grep还可以找出符合某个模式(Pattern)的一类字符串.例如找出所有符合xxxxx@xxxx. ...