这是我参与11月更文挑战的第3天,活动详情查看:2021最后一次更文挑战
👉写在前边
- 上篇我们了解了 redis的历史和运行,了解了如何运行之后,我们这篇来总结一下redis中的常见数据类型和相关的常用命令
命令大全:
Redis-Key
EXPIRE key10
10s就过期
ttl key
查询过期剩余时间
type key
查看类型
move name 1(1表示当前数据库)
移除当前的key
大杂烩
1 | nginx复制代码127.0.0.1:6379> keys * # 查看所有的key |
String
appen和strlen
1 | nginx复制代码127.0.0.1:6379> set key1 v1 # 设置值 |
incr和decr 自增和自减
1 | nginx复制代码# i++ |
getRange字符串范围 setRange替换指定位置开始的字符串
1 | nginx复制代码# 字符串范围 range |
设置过期时间setex setnx(不存在才设置,存在时会失败)
1 | nginx复制代码# setex (set with expire) # 设置过期时间 |
mset/get 同时设置/获取多个值
msetnx 是一个原子性的操作,要么一起成功,要么一起
1 | nginx复制代码mset |
对象 set user:1:name xxx user:1:age xxx
其实相当于key=user:1:name这一串很长的,然后:后边可以更换属性
1 | nginx复制代码# 对象 |
get同时set
1 | nginx复制代码getset # 先get然后在set |
使用场景
String类似的使用场景:value除了是我们的字符串还可以是我们的数字!
- 计数器
- 统计多单位的数量
- 粉丝数
- 对象缓存存储!
Hash(跟String类似的其实)
Map集合,key-map! 时候这个值是一个map集合! 本质和String类型没有太大区别,还是一个简单的 key-vlaue!
hash存储经常变更的数据 user name age,尤其是是用户信息之类的,经常变动的信息! hash 更适合于对象的存储,String更加适合字符串存储!
hset/get
hdel(类似String的del)
hkeys/hvals(只获得所有key/val)
同样可以指定增量,可以hsetnx
1 | nginx复制代码127.0.0.1:6379> hset myhash field1 kuangshen # set一个具体 key-vlaue |
List
可以玩成双向队列,栈等
- 底层是一个双向链表,对于两段的插入删除效率比较高,而对于中间索引值的插入和更改就相对慢了,因为查询慢
Lpush和Rpush LRange 查看区间值(0 -1就会查所有)
只在左边进的话就类似栈,
1 | nginx复制代码127.0.0.1:6379> LPUSH list one # 将一个值或者多个值,插入到列表头部 (左) |
Lpop和Rpop
1 | nginx复制代码LPOP |
Lindex(通过下标获得 list 中的某一个值)
1 | nginx复制代码Lindex |
Llen 获取长度
1 | nginx复制代码Llen |
Lrem 移除count个指定value的值
注意是从左边开始删掉
1 | nginx复制代码移除指定的值! |
trim 截取
通过下标截取指定的长度,可以理解为只保留截取区间的元素
1 | nginx复制代码trim 修剪。; list 截断! |
rpoplpush 移除指定的值,移动到新的list中
1 | nginx复制代码rpoplpush # 移除列表的最后一个元素,将他移动到新的列表中! |
Lset 修改指定下标的值
1 | nginx复制代码lset #将列表中指定下标的值替换为另外一个值,更新操作 |
Insert 在指定value前边或者后边插入值
1 | nginx复制代码linsert # 将某个具体的value插入到列把你中某个元素的前面或者后面! |
Set
底层是一个哈希表,查询是O(1)
成员相关
Sadd 添加成员
Smember 查看所有成员
SIsMember 查看是否是成员之一
Scard 获取元素个数
srem 删除指定value
SrandMember 随机获取成员(不会pop)
Spop 随机pop出来
大杂烩
1 | nginx复制代码127.0.0.1:6379> sadd myset "hello" # set集合中添加匀速 |
ZSet(有序集合)
- 在set的基础上,增加了一个值
1 | nginx复制代码127.0.0.1:6379> zadd myset 1 one # 添加一个值 |
💠下篇预告
- 下篇我们将解析一下redis的配置文件,之后还会有Springboot整合以及自定义RedisTemplate和工具类等相关知识。
参考
- 尚硅谷Redis6视频
- 狂神说Redis视频
本文转载自: 掘金