keys *

查看当前库所有key

返回值:为当前库中所有key

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 现在redis中没有数据
127.0.0.1:6379> keys *
(empty list or set)
# 向redis中放三条数据
127.0.0.1:6379> set k1 value1
OK
127.0.0.1:6379> set k2 value2
OK
127.0.0.1:6379> set k3 value3
OK
# 查看当前库中所有key
127.0.0.1:6379> keys *
1) "k2"
2) "k3"
3) "k1"

exists

判断key是否存在

返回值:

  • 返回1说明存在

  • 返回0说明不存在

1
2
3
4
5
6
# 判断k1是否存在
127.0.0.1:6379> exists k1
(integer) 1
# 判断key4是否存在
127.0.0.1:6379> exists key4
(integer) 0

type

查看键对应的值的类型

返回值:键对应值的类型

1
2
3
# 查看k2对应的值的类型
127.0.0.1:6379> type k2
string

都是删除key对应的键值对

返回值为删除的键值对个数

unlink与del的区别

  • del是将数据立即从库中删除
  • unlink仅仅是将key从keyspace元数据中删除,真正的删除会在后续异步操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 删除k3键值对
127.0.0.1:6379> del k2
(integer) 1
# 查看当前所有的键
127.0.0.1:6379> keys *
1) "k3"
2) "k1"
# 删除k4
127.0.0.1:6379> del k4
(integer) 0
# 删除k1
127.0.0.1:6379> unlink k1
(integer) 1
# 查看当前库中所有key
127.0.0.1:6379> keys *
1) "k3"
# 删除k4
127.0.0.1:6379> unlink k4
(integer) 0

expire和ttl

expire:设置key对应的过期时间,以秒为单位

返回值为设置过期时间成功的键值对数

ttl:查看key的过期时间,以秒为单位

返回值

  • -1表示永不过期
  • -2表示已过期
  • 0和正数表示实际过期时间
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 设置k3的过期时间为100秒
127.0.0.1:6379> expire k3 100
(integer) 1
# 每隔一段时间查看k3的过期时间
# 还未过期
127.0.0.1:6379> ttl k3
(integer) 75
127.0.0.1:6379> ttl k3
(integer) 58
127.0.0.1:6379> ttl k3
(integer) 51
# 已过期
127.0.0.1:6379> ttl k3
(integer) -2
# 查看当前库中所有key
127.0.0.1:6379> keys *
(empty array)
# 设置一个永久key
127.0.0.1:6379> set k1 value1
OK
# 查看k1过期时间
# 永不过期
127.0.0.1:6379> ttl k1
(integer) -1