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