redis基本数据类型

58 阅读2分钟

基本数据类型

reids的五种基本数据类型:String,set,hash,list,sortedset

redis的基本命令

使用help +名称查看帮助文档

Redis 命令参考 — Redis 命令参考 (redisfans.com)

String类型

最大存储为512MB

常用命令为:

image-20240716101100827

SETEX和set然后最后加一个ex的效果是一样的

SETNX和set设置然后加上nx的效果是一样的

三种格式

整型,字符串,浮点型

key的层级格式

redis的key允许有多个单词形成层级结构,多个单词使用:分隔开格式为

项目名:业务名:类型:id

格式不是固定的可以自行设定

127.0.0.1:6379> set name:name1:1 zhangsan
​
127.0.0.1:6379> set duo:ge:shuju '{"id":2,"name":"zhangsan","price":9999}'

key的格式:image-20240716162737503

相当于新建了几个文件夹然后存储键值对。

Hash类型

相当于在一个文件中存储多个键值对

也叫散列,其value是一个无序字典,类似于java中的hashmap

hash结构可以将对象中的每个字段独立存储,也可以针对单个做crud

image-20240716194750156

list类型

List类型相当于java中的linklist集合

image-20240716205645011

image-20240716204652060

如果语句是Lpush user 1 2 3那么最后存储的时候,3在第一位,因为存储的时候相当于从左边插入。

pop在取出的同时,还会将数据移除

set类型

redis的set结构与java中的hashset类似,可以看作是一个value为null的hashmap,所以也是

*无序

*元素不可重复

*查找快

*支持交集,并集,差集等功能

单个集合的操作

image-20240716212704451

多个集合的操作

image-20240716213011953

127.0.0.1:6379> sadd zhangsan lisi wangwu zhaoliu
(integer) 3
127.0.0.1:6379> sadd lisi wangwu mazi ergou
(integer) 3
127.0.0.1:6379> scard zhangsan
(integer) 3
127.0.0.1:6379> sinter zhangsan lisi
1) "wangwu"
127.0.0.1:6379> sdiff zhangsan lisi
1) "lisi"
2) "zhaoliu"
127.0.0.1:6379> sunion zhangsan lisi
1) "lisi"
2) "wangwu"
3) "zhaoliu"
4) "ergou"
5) "mazi"
127.0.0.1:6379> srem zhangsan lisi
(integer) 1
127.0.0.1:6379> srem lisi zhangsan
(integer) 0
127.0.0.1:6379> srem zhangsan lisi
(integer) 0
127.0.0.1:6379> smembers zhangsan
1) "wangwu"
2) "zhaoliu"

sortedset类型

Redis 的 SortedSet 是一个可排序的 set 集合 ,与 Java 中的 TreeSet 有些类似 ,但底层数据结构却差别很大 。SortedSet 中的每个元素都带有一个 score 属性 ,可以基于 score 属性对元素排序 ,底层的实现是一个跳表 (SkipList) 加 hash 表 。

SortedSet 具备下列特性 : . 可排序 . 元素不重复 . 查询速度快

因为 SortedSet 的可排序特性 , 经常被用来实现排行榜这样的功能 。

image.png