redis常用指令
总结计划
1. Redis 入 门 | (了解) | (操作) | |
---|---|---|---|
2. 数据类型 | (重点) | (操作) | (理解) |
3. 常用指令 | (操作) | ||
4. Jedis | (重点) | (操作) | |
5. 持 久 化 | (重点) | (理解) | |
6. 数据删除与淘汰策略 | (理解) | ||
7. 主从复制 | (重点) | (操作) | (理解) |
8. 哨 兵 | (重点) | (操作) | (理解) |
9. Cluster集群方案 | (重点) | (操作) | (理解) |
10. 企业级缓存解决方案 | (重点) | (理解) | |
11. 性能指标监控 | (了解) |
3. 常用指令
在这部分中呢,我们将学习两个知识,第一个是key的常用指令,第二个是数据库的常用指令。和前面我们学数据类型做一下区分,前面你学的那些指令呢,都是针对某一个数据类型操作的,现在学的都是对所有的操作的,来看一下,我们在学习Key的操作的时候,我们先想一下的操作我们应该学哪些东西:
3.1 key 操作分析
3.1.1 key应该设计哪些操作?
key是一个字符串,通过key获取redis中保存的数据
对于key自身状态的相关操作,例如:删除,判定存在,获取类型等
对于key有效性控制相关操作,例如:有效期设定,判定是否有效,有效状态的切换等
对于key快速查询操作,例如:按指定策略查询key
3.1.2 key 基本操作
删除指定key
del key
获取key是否存在
exists key
获取key的类型
type key
3.1.3 拓展操作
排序
sort
改名
rename key newkey
renamenx key newkey
3.1.3 key 扩展操作(时效性控制)
为指定key设置有效期
expire key seconds
pexpire key milliseconds
expireat key timestamp
pexpireat key milliseconds-timestamp
获取key的有效时间
ttl key
pttl key
切换key从时效性转换为永久性
persist key
3.1.4 key 扩展操作(查询模式)
查询key
keys pattern
查询模式规则
*匹配任意数量的任意符号 ? 配合一个任意符号 [] 匹配一个指定符号
keys * keys 查询所有
it* keys 查询所有以it开头
*heima 查询所有以heima结尾
keys ??heima 查询所有前面两个字符任意,后面以heima结尾 查询所有以
keys user:? user:开头,最后一个字符任意
keys u[st]er:1 查询所有以u开头,以er:1结尾,中间包含一个字母,s或t
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
其他操作
ping
3.2.4 数据库扩展操作
数据移动
move key db
数据总量
dbsize
数据清除
flushdb flushall