redis是基于key -- value 存储的 NoSQL 数据库,那么下面来看看关于key的键命令。
键命令
查找键,参数⽀持正则表达式
keys pattern
- 例1:查看所有键
keys *
127.0.0.1:6379[1]> KEYS *
1) "name"
2) "a1"
3) "a2"
4) "a3"
127.0.0.1:6379[1]>
- 例2:查看名称中包含a的键
keys a*
127.0.0.1:6379[1]> KEYS a*
1) "a1"
2) "a2"
3) "a3"
127.0.0.1:6379[1]>
判断键是否存在,如果存在返回1,不存在返回0
exists key1
- 例3:判断键a1是否存在
exists a1
127.0.0.1:6379[1]> exists a1
(integer) 1
127.0.0.1:6379[1]> exists a2
(integer) 1
127.0.0.1:6379[1]> exists name
(integer) 1
## 查看不存在的a4键返回 0
127.0.0.1:6379[1]> exists a4
(integer) 0
127.0.0.1:6379[1]>
查看键对应的value的类型
type key
- 例4:查看键a1的值类型,为redis⽀持的五种类型中的⼀种
type a1
# 查看a1的value类型为string
127.0.0.1:6379[1]> type a1
string
# 设置一个hash类型的value
127.0.0.1:6379[1]> hset a5 name huangw
(integer) 1
# 查看a5 value的类型为 hash
127.0.0.1:6379[1]> type a5
hash
127.0.0.1:6379[1]> hget a5 name
"huangw"
127.0.0.1:6379[1]>
删除键及对应的值
del key1 key2 ...
- 例5:删除键a2、a3
del a2 a3
127.0.0.1:6379[1]> mget a1 a2 a3
1) "python"
2) "java"
3) "c"
127.0.0.1:6379[1]> del a2 a3
(integer) 2
127.0.0.1:6379[1]> mget a1 a2 a3
1) "python"
2) (nil)
3) (nil)
127.0.0.1:6379[1]>
设置过期时间,以秒为单位
- 如果没有指定过期时间则⼀直存在,直到使⽤DEL移除
expire key seconds
- 例6:设置键'a1'的过期时间为3秒
expire a1 3
# 获取当前a1的值
127.0.0.1:6379[1]> get a1
"python"
# 设置a1的值3秒后过期
127.0.0.1:6379[1]> EXPIRE a1 3
(integer) 1
# 在3秒内查询a1的值
127.0.0.1:6379[1]> get a1
"python"
127.0.0.1:6379[1]> get a1
"python"
# 在3秒后查询a1的值以及value类型
127.0.0.1:6379[1]> get a1
(nil)
127.0.0.1:6379[1]> type a1
none
127.0.0.1:6379[1]>
查看有效时间,以秒为单位
ttl key
- 例7:查看键'bb'的有效时间
ttl bb
# 设置bb的值过期时间为10秒
127.0.0.1:6379[1]> setex bb 10 bb
OK
# 查看bb的剩余有效时间
127.0.0.1:6379[1]> ttl bb
(integer) 7
127.0.0.1:6379[1]> ttl bb
(integer) 6
127.0.0.1:6379[1]> ttl bb
(integer) 6
127.0.0.1:6379[1]> ttl bb
(integer) 4
127.0.0.1:6379[1]> ttl bb
(integer) 3
127.0.0.1:6379[1]> ttl bb
(integer) 1
127.0.0.1:6379[1]> ttl bb
(integer) 0
127.0.0.1:6379[1]> ttl bb
(integer) -2
# 查看过期后的值为nil
127.0.0.1:6379[1]> get bb
(nil)
127.0.0.1:6379[1]> ttl bb
(integer) -2
网友评论