当前位置:网站首页>Redis五种基本数据结构
Redis五种基本数据结构
2022-07-26 23:06:00 【crazyK.】
目录
一、String
1.简介
String类型,也就是字符串类型,是Redis中最简单的存储类型。
其value是字符串,不过根据字符串的格式不同,又可以分为3类:
string:普通字符串
int:整数类型,可以做自增、自减操作
float:浮点类型,可以做自增、自减操作
不管是哪种格式,底层都是字节数组形式存储,只不过是编码方式不同。字符串类型的最大空间不能超过512m.
2.常用命令
SET:添加或者修改已经存在的一个String类型的键值对
GET:根据key获取String类型的value
MSET:批量添加多个String类型的键值对
MGET:根据多个key获取多个String类型的value
INCR:让一个整型的key自增1
INCRBY:让一个整型的key自增并指定步长,例如:incrby num 2 让num值自增2
INCRBYFLOAT:让一个浮点类型的数字自增并指定步长
SETNX:添加一个String类型的键值对,前提是这个key不存在,否则不执行
SETEX:添加一个String类型的键值对,并且指定有效期
3.使用示例


二、Hash
1.简介
Hash类型,也叫散列,其value是一个无序字典,类似于Java中的HashMap结构。 String结构是将对象序列化为JSON字符串后存储,当需要修改对象某个字段时很不方便:

Hash结构可以将对象中的每个字段独立存储,可以针对单个字段做CRUD:

2.常用命令
HSET key field value:添加或者修改hash类型key的field的值
HGET key field:获取一个hash类型key的field的值
HMSET:批量添加多个hash类型key的field的值
HMGET:批量获取多个hash类型key的field的值
HGETALL:获取一个hash类型的key中的所有的field和value
HKEYS:获取一个hash类型的key中的所有的field
HVALS:获取一个hash类型的key中的所有的value
HINCRBY:让一个hash类型key的字段值自增并指定步长
HSETNX:添加一个hash类型的key的field值,前提是这个field不存在,否则不执行
3.使用示例



三、List
1.简介
Redis中的List类型与Java中的LinkedList类似,可以看做是一个双向链表结构。既可以支持正向检索和也可以支持反向检索。
特征也与LinkedList类似:
有序 元素可以重复 插入和删除快 查询速度一般
常用来存储一个有序数据,例如:朋友圈点赞列表,评论列表等。
2.常用指令
LPUSH key element ... :向列表左侧插入一个或多个元素
LPOP key:移除并返回列表左侧的第一个元素,没有则返回nil
RPUSH key element ... :向列表右侧插入一个或多个元素
RPOP key:移除并返回列表右侧的第一个元素
LRANGE key star end:返回一段角标范围内的所有元素
BLPOP和BRPOP:与LPOP和RPOP类似,只不过在没有元素时等待指定时间,而不是直接返回nil
3.使用示例

四、Set
1.简介
Redis的Set结构与Java中的HashSet类似,可以看做是一个value为null的HashMap。因为也是一个hash表,因此具备与HashSet类似的特征: 无序 元素不可重复 查找快 支持交集、并集、差集等功能
2.常用命令
SADD key member ... :向set中添加一个或多个元素
SREM key member ... : 移除set中的指定元素
SCARD key: 返回set中元素的个数
SISMEMBER key member:判断一个元素是否存在于set中
SMEMBERS:获取set中的所有元素
SINTER key1 key2 ... :求key1与key2的交集
SDIFF key1 key2 ... :求key1与key2的差集
SUNION key1 key2 ..:求key1和key2的并集
3.使用示例

五、ZSet
1.简介
Redis的SortedSet是一个可排序的set集合,与Java中的TreeSet有些类似,但底层数据结构却差别很大。SortedSet中的每一个元素都带有一个score属性,可以基于score属性对元素排序,底层的实现是一个跳表(SkipList)加 hash表。
SortedSet具备下列特性: 可排序 元素不重复 查询速度快
因为SortedSet的可排序特性,经常被用来实现排行榜这样的功能。
2.常用命令
ZADD key score member:添加一个或多个元素到sorted set ,如果已经存在则更新其score值
ZREM key member:删除sorted set中的一个指定元素
ZSCORE key member : 获取sorted set中的指定元素的score值
ZRANK key member:获取sorted set 中的指定元素的排名
ZCARD key:获取sorted set中的元素个数
ZCOUNT key min max:统计score值在给定范围内的所有元素的个数
ZINCRBY key increment member:让sorted set中的指定元素自增,步长为指定的increment值
ZRANGE key min max:按照score排序后,获取指定排名范围内的元素
ZRANGEBYSCORE key min max:按照score排序后,获取指定score范围内的元素
注意:所有的排名默认都是升序,如果要降序则在命令的Z后面添加REV即可
3.使用示例

边栏推荐
- 面试必问 | 一个线程从创建到消亡要经历哪些阶段?
- HCIP oSPF知识总结
- C语言的常数知识讲解
- 多点双向重发布和路由策略-拓扑实验
- 东北证券股票网上开户,手机上开户安全吗
- 证券炒股开户需要现场开户吗网上开户安全吗
- Array methods and loops in JS
- [dimension reduction blow, take you to learn CPU in depth (Part 1)]
- PPOCRLabel格式的数据集操作总结。
- (super detailed version, don't know to comment at any time) codeforces round 804 (Div. 2) C the third problem
猜你喜欢
![[brother Yang takes you to play with the linear table (4) - chain queue]](/img/b6/ea76e060be73bc14f2166144e7b5e7.png)
[brother Yang takes you to play with the linear table (4) - chain queue]

C language - value range of data type and basic data type

C语言 学生信息管理系统 基于数组 可以存取到文本文件

hcip--ospf接口网络接口类型实验

HCIP oSPF综合实验
![[Fibonacci sequence and spiral are based on C language]](/img/11/0dd7ee9a788c519fa3ae5a3f2b0bca.jpg)
[Fibonacci sequence and spiral are based on C language]

Area optimization of digital chips: detailed explanation of question 1 in the digital direction of the third "Huawei Cup" graduate innovation core competition
![[C language] factorial implementation](/img/a1/9e603321d364c7f457116bd9e462aa.png)
[C language] factorial implementation

HCIP-第二天

最新多线程&高并发学习资料,面试心里有底气
随机推荐
[after this article, learning the linked list is a smooth way]
The latest JD SMS login + silly girl robot nanny level deployment tutorial (July 24, 2022)
Handsomeforum Learning Forum
怎么判断一个数是奇数还是偶数?
【C语言程序设计】分支结构
勤写标兵——云小井
Lora communication application development
PPOCRLabel格式的数据集操作总结。
HCIP oSPF知识总结
有趣的C语言
Use of golang - sync package (waitgroup, once, mutex, rwmutex, cond, pool, map)
祝大家七夕快乐,邀你源码共读
见证中国网安力量 “解码2022中国网安强星”即将启航
NAT network address translation protocol topology experiment
OSPF basic experimental configuration
Risc-v tool chain compilation notes
HCIP-第五天-OSPF扩展配置实验
Interesting C language
oSPF基础实验配置
在有序数组找具体某个数字