key基本操作:
删除指定key
del key
获取key是否存在
exists key
获取key的类型
type key
排序
# 默认是排序数字的,如果要排序字符串的需要加alpha,加desc是倒序,但是只是查看排序,真正的顺序是不会变的 sort list1 alpha sort list1 desc
改名
# rename key newkey rename list1 list # renamenx key newkey 名字不存在的话才修改成功 renamenx list1 list
为指定key设置有效期
expire key 秒 pexpire key 毫秒 expireat key 时间戳 pexpireat key milliseconds-timestamp expire key 1998 pexpire key 19988888 expireat key 1991919199191 pexpireat key 1991919199191
# expire key seconds设置的是秒 expire list 10 # pexpire key milliseconds设置的是毫秒 pexpire list 1000 expireat key timestamp UNIX 时间戳 pexpireat key milliseconds-timestamp UNIX 时间戳
获取key的有效时间
# ttl key 以秒为单位返回 key 的剩余过期时间 # pttl key 以毫秒为单位返回 key 的剩余过期时间 ttl key pttl key
切换key从时效性转换为永久性
persist key
查询key:
*匹配任意数量的任意符号 ? 配合一个任意符号 [] 匹配一个指定符号 keys * 查询所有 keys it* 查询所有以it开头 keys *zhuzhu 查询所有以zhuzhu结尾 keys ??zhuzhu 查询所有前面两个字符任意,后面以zhuzhu结尾 keys user:? 查询所有以user:开头,最后一个字符任意 keys u[st]er:1 查询所有以u开头,以er:1结尾,中间包含一个字母,s或t
数据库指令:
假如说十个人同时操作redis,会出现key名字命名冲突的问题。
解决方案:
- redis为每个服务提供有16个数据库,编号从0到15
- 每个数据库之间的数据相互独立
- 在对应的数据库中划出一块区域,说他就是几,你就用几那块,同时,其他的这些都可以进行定义,一共是16个,这里边需要注意一点,他们这16个共用redis的内存。没有说谁大谁小,也就是说数字只是代表了一块儿区域,区域具体多大未知。这是数据库的一个分区的一个策略!
切换数据库
# select index select 0
其他操作
ping # 返回PONG就说明是服务器是通的
数据移动
# move key db move name 1 把name移到数据库1
数据总量
dbsize
数据清除
# 清除当前库 flushdb # 清除所有库 flushall