Redis常用指令
# 3. 常用指令
第一个是key的常用指令,第二个是**数据库(db)**的常用指令。和数据类型做一下区分,数据类型指令呢,都是针对某一个数据类型操作的,常用指令都是对所有的操作的
# 3.1 key 操作分析
# 3.1.1 key应该设计哪些操作?
key是一个字符串,通过key获取redis中保存的数据
对于key自身状态的相关操作,例如:删除,判定存在,获取类型等
对于key有效性控制相关操作,例如:有效期设定,判定是否有效,有效状态的切换等
对于key快速查询操作,例如:按指定策略查询key
# 3.1.2 key 基本操作
删除指定key
del key
1
获取key是否存在
exists key
1
获取key的类型
type key
1
3.1.3 拓展操作
排序
sort
1
改名
rename key newkey
renamenx key newkey
1
2
2
# 3.1.3 key 扩展操作(时效性控制)
为指定key设置有效期
expire key seconds
pexpire key milliseconds
expireat key timestamp
pexpireat key milliseconds-timestamp
1
2
3
4
2
3
4
获取key的有效时间
ttl key #-1 永久有效 ;-2 不存在;
pttl key #毫秒
1
2
2
切换key从时效性转换为永久性
persist key
1
# 3.1.4 key 扩展操作(查询模式)
查询key
keys pattern #简单来说 就是get all
1
查询模式规则
*匹配任意数量的任意符号 ? 配合一个任意符号 [] 匹配一个指定符号
keys * 查询所有
keys it* 查询所有以it开头
keys *heima 查询所有以heima结尾
keys ??heima 查询所有前面两个字符任意,后面以heima结尾 查询所有以
keys user:? user:开头,最后一个字符任意
keys u[st]er:1 查询所有以u开头,以er:1结尾,中间包含一个字母,s或t
1
2
3
4
5
6
2
3
4
5
6
# 3.2 数据库指令
# 3.2.1 key 的重复问题
假如说你们十个人同时操作redis,会不会出现key名字命名冲突的问题。
一定会,为什么?因为你的key是由程序而定义的。你想写什么写什么,那在使用的过程中大家都在不停的加,早晚有一天他会冲突的。
redis在使用过程中,伴随着操作数据量的增加,会出现大量的数据以及对应的key。
那这个问题我们要不要解决?要!怎么解决呢?我们最好把数据进行一个分类,除了命名规范我们做统一以外,如果还能把它分开,这样是不是冲突的机率就会小一些了,这就是咱们下面要说的解决方案!
# 3.2.2 解决方案
redis为每个服务提供有16个数据库,编号从0到15
每个数据库之间的数据相互独立
在对应的数据库中划出一块区域,说他就是几,你就用几那块,同时,其他的这些都可以进行定义,一共是16个,这里边需要注意一点,他们这16个共用redis的内存。没有说谁大谁小,也就是说数字只是代表了一块儿区域,区域具体多大未知。这是数据库的一个分区的一个策略!
# 3.2.3 数据库的基本操作
切换数据库
select index
1
其他操作
ping
1
# 3.2.4 数据库扩展操作
数据移动
move key db
1
数据总量
dbsize
1
数据清除
flushdb flushall
1
上次更新: 2023/09/05 17:45:42