key操作
redis中所有的数据都是通过key(键)来进行操作,这里我们学习一下关于任何数据类型都通用的命令。
(1)查找键
参数支持简单的正则表达式
keys pattern
查看所有键
keys *
例子:
# 查看名称中包含`a`的键 keys *a* # 查看以a开头的键 keys a* # 查看以a结尾的键 keys *a
127.0.0.1:6379> keys * 1) "name" 2) "user_01" 3) "age" 127.0.0.1:6379> keys *_01 1) "user_01" 127.0.0.1:6379> keys *a* 1) "name" 2) "age" 127.0.0.1:6379> exists name (integer) 1 127.0.0.1:6379> exists names (integer) 0 127.0.0.1:6379> type name string 127.0.0.1:6379> del name age (integer) 2 127.0.0.1:6379> keys * 1) "user_01" 127.0.0.1:6379> setex name 100 llz OK 127.0.0.1:6379> get name "llz" 127.0.0.1:6379> ttl name (integer) 79 127.0.0.1:6379> ttl name (integer) 75 127.0.0.1:6379> ttl name (integer) 61 127.0.0.1:6379> get age (nil) 127.0.0.1:6379> expire age 15 (integer) 0 127.0.0.1:6379> get age (nil) 127.0.0.1:6379> set age 18 OK 127.0.0.1:6379> get age "18" 127.0.0.1:6379> rename age nianlin OK 127.0.0.1:6379> select 1 OK 127.0.0.1:6379[1]> get name (nil) 127.0.0.1:6379[1]> set name lz OK 127.0.0.1:6379[1]> get name "lz" 127.0.0.1:6379[1]>
(2)判断键是否存在
如果存在返回1
,不存在返回0
exists key1
判断键title
是否存在
exists title
(3)查看键的的值的数据类型
type key # string 字符串 # hash 哈希类型 # list 列表类型 # set 无序集合 # zset 有序集合
查看键的值类型
type a1 # string sadd member_list xiaoming xiaohong xiaobai # (integer) 3 type member_list # set hset user_1 name xiaobai age 17 sex 1 # (integer) 3 type user_1 # hash lpush brothers zhangfei guangyu liubei xiaohei # (integer) 4 type brothers # list zadd achievements 61 xiaoming 62 xiaohong 83 xiaobai 78 xiaohei 87 xiaohui 99 xiaolong # (integer) 6 type achievements # zset
(4)删除键以及键对应的值
del key1 key2 ...
(5)查看键的有效期
ttl key # 结果结果是秒作为单位的整数 # -1 表示永不过期 # -2 表示当前数据已经过期,查看一个不存在的数据的有效期就是-2
(6)设置key的有效期
给已有的数据重新设置有效期,redis中所有的数据都可以通过expire来设置它的有效期。有效期到了,数据就被删除。
expire key seconds
(7)清空所有key
慎用,一旦执行,则redis所有数据库0~15的全部key都会被清除
flushall
(8)key重命名
rename oldkey newkey
把name重命名为username
set name yuan rename name username get username
select切换数据库
redis的配置文件中,默认有0~15之间的16个数据库,默认操作的就是0号数据库 select <数据库ID>
操作效果:
# 默认处于0号库 127.0.0.1:6379> select 1 OK # 这是在1号库 127.0.0.1:6379[1]> set name xiaoming OK 127.0.0.1:6379[1]> select 2 OK # 这是在2号库 127.0.0.1:6379[2]> set name xiaohei OK
127.0.0.1:6379[1]> select 0 OK 127.0.0.1:6379> keys * 1) "name" 2) "nianlin" 3) "user_01" 127.0.0.1:6379> flushall OK 127.0.0.1:6379> 127.0.0.1:6379> keys * (empty list or set)