Redis-集合(Set)基础
Redis集合包括Set(无序集合)和ZSet(有序集合),这里的Set实现相当于Java中的HashSet,它内部实现了一个特殊的字典,字典中所有的value都是一个值NULL。下面我们来熟悉下set的常用的命令
Set
>sadd name hello
(integer)1
>sadd name hello #重复,不能插入
(integer)0
>sadd name i am ok
(integer)3
>smembers name
"hello"
"i"
"am"
"ok"
>sismember name hello #检测值是否存在
(integer)1
>scard name #获取长度
(integer)4
>spop name #获取第一个
"hello"
ZSet
zset是一个有序集合,他有着java里的SortedSet和HashMap的特色,它是一个集合能保证内部value唯一,又有一个排序字段score来排序,他的内部结构实现了跳跃列表,俗称跳表,接下来会找个时间来解释zset中的跳表实现。一般来说我们使用zset最多的还是排名,比如直播里面的送礼物排名,粉丝个数排名等
下面我们来使用一些常用的命令
>zadd name 2 world
(integer)1
>zadd name 1 hello
(integer)1
>zrange name 0 -1 #按照score升序排列
"hello"
"world"
>zrevrange name 0 -1 #按照score降序排列
"world"
"hello"
>zcard name #获取集合个数
(integer)2
>zscore name hello #获取内部score
1.0
>zrem name world #删除
(integer)1
一般来说我们进行有序的列表进行搜索的时可以使用遍历整个列表,但是为了考虑性能我们使用二分法是最快的,但是列表需要随机插入和删除,这样数据是不适合这样做,那么我们尝试着使用链表,链表很好的支持随机插入和删除,但是链表又不能进行二分法快速查找,那么我们redis里面使用了一个叫跳跃列表的方式来实现zset,关于这方面的分享,我会下后面的章节里详细描述。
一名正在抢救的coder
笔名:mangolove
CSDN地址:https://blog.csdn.net/mango_love
GitHub地址:https://github.com/mangoloveYu
Redis-集合(Set)基础相关推荐
- 【《Redis深度历险》读书笔记(1)】基础:万丈高楼平地起 ——Redis 5种基础数据结构
[时间]2021.11.16 [题目][<Redis深度历险>读书笔记(1)]基础:万丈高楼平地起 --Redis 基础数据结构 本栏目是<Redis深度历险:核心原理和应用实践&g ...
- Redis学习笔记①基础篇_Redis快速入门
若文章内容或图片失效,请留言反馈.部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 资料链接:https://pan.baidu.com/s/1189u6u4icQYHg_9_7ovWmA( ...
- Redis学习之基础知识普及
Redis学习之基础知识普及 1. Redis安装(单机) 2.Redis基本数据结构 3.Redis常用命令 3.1.Redis 键(key) 3.2.Redis 字符串(String) 3.3.R ...
- 【Redis】详细基础命令 - 学习笔记
Redis 环境搭建及运行 安装(Ubuntu举例,其他系统类似) apt-get update && apt-get install redis-server -y 启动 redis ...
- Redis 命令--Redis集合(Set)
Redis集合(Set) Redis 的 Set 是 String 类型的无序集合.集合成员是唯一的,这就意味着集合中不能出现重复的数据. Redis 中集合是通过哈希表实现的,所以添加,删除,查找的 ...
- Redis 集合(Set)
Redis 集合(Set) Redis的Set是string类型的无序集合.集合成员是唯一的,这就意味着集合中不能出现重复的数据. Redis 中 集合是通过哈希表实现的,所以添加,删除,查找的复杂度 ...
- Redis学习---(10)Redis 集合(Set)
Redis 集合(Set) Redis 的 Set 是 String 类型的无序集合.集合成员是唯一的,这就意味着集合中不能出现重复的数据. Redis 中集合是通过哈希表实现的,所以添加,删除,查找 ...
- redis linux 删除数据结构,Redis集合数据结构和常用命令
Redis 的集合不是一个线性结构,而是一个哈希表结构,它的内部会根据 hash 分子来存储和查找数据,理论上一个集合可以存储 2 的 32 次方减 1 个节点(大约 42 亿)个元素,因为采用哈希表 ...
- web前端知识集合——javascript基础篇之javascript背景历史和运行环境(一)
前言:温故而知新,可以为长也!万变不离其宗,无论是现在web前端技术衍生出多么优秀,好用的框架,插件,都离不开这门语言的基础知识.掌握各种优秀的框架,插件,只是"善用工具的人",深 ...
- 如何遍历redis集合
2019独角兽企业重金招聘Python工程师标准>>> 当redis集合有大量的键值对的时候,如果使用smembers来获取就如同keys *在redis有大量键的时候一样,会产生性 ...
最新文章
- 12种主流编程语言输出“ Hello World ”,把我给难住了!
- MEMS惯性传感器有哪些趋势?
- 开发ProxyServer的时候如何在一台PC上调试
- 重构机房收费系统总结1之配置文件+反射+抽象工厂
- 超形象!著名的三角不等式演示动图!
- React 与 可视化
- jdk8 Arrays.sort()实现分析
- 基于Matlab的跨孔层析成像的最短路径法弯曲射线追踪(一)
- 微信小程序实现转义换行符
- Android两种存储用户临时数据的方式比较:Preferences Bundle
- 希捷低格工具_拯救硬盘问题的终极大招超强电脑硬盘低格工具
- 多次重复原生进入RN优化Catalyst Instance has already disappeared
- 【CSS】笔记2-复合选择器、显示模式、背景
- 人工智能轨道交通行业周刊-第8期(2022.8.1-8.7)
- 【水花的2021年度总结】
- plsql执行oracle函数,PLSQL中Function和Procedures的简单使用
- DL框架之DL4J/Deeplearning4j:深度学习框架DL4J/Deeplearning4j的简介、安装、使用方法之详细攻略
- 《信号完整性分析和印制电路板》PDF下载
- JS字符串转换成数字的三种经典方法和代码实例
- android极光推送】—从客户端到后台,一文通吃