在介绍Redis的数据类型之前,我们先看些系统级的命令。什么叫系统级命令呢?即,这些命令和具体的数据类型无关。详细的用法可以参考下述网址:
Redis 命令参考
注意:Redis命令不区分大小写,这里通过大写表示命令
1 Key(键)系列命令
1.1 KEYS pattern
查找所有符合给定模式 pattern 的 key 。
127.0.0.1:6378> KEYS *
1) "bar"
2) "Back3"
3) "Back4"
4) "Back1"
5) "Back2"
127.0.0.1:6378> KEYS b*
1) "bar"
127.0.0.1:6378>
pattern支持glob风格通配符。
符号 | 含义 |
---|---|
? | 匹配一个字符 |
* | 匹配任意个(包括0个)字符 |
[ ] | 匹配括号间的任一字符,可以使用“-”符号表示一个范围,如a[b-d]可以匹配"ab","ac"和"ad" |
\x | 匹配字符x,用于转义符号。如要匹配"?"就需要使用? |
KEYS
的速度非常快,但在一个大的数据库中使用它仍然可能造成性能问题。如果在生产环境中需要从一个数据集中查找特定的key,你最好还是用 Redis 的集合结构(set)来代替。
1.2 EXISTS key
判断指定的key是否存在
127.0.0.1:6378> exists bar
(integer) 1
127.0.0.1:6378> exists bab
(integer) 0
127.0.0.1:6378> exists ba*
(integer) 0
127.0.0.1:6378>
这里的key不能是pattern,必须是一个真正的key名称
1.3 DEL key [key ...]
删除给定的一个或多个 key 。
127.0.0.1:6378> keys a*
1) "a2"
2) "a1"
127.0.0.1:6378> del a1
(integer) 1
127.0.0.1:6378> keys a*
1) "a2"
127.0.0.1:6378>
1.4 TYPE key
返回 key 所储存的值的类型。
127.0.0.1:6378> type a2
string
127.0.0.1:6378>
1.5 RANDOMKEY
从当前数据库中随机返回(不删除)一个 key 。
127.0.0.1:6378> MSET fruit "apple" drink "beer" food "cookies"
OK
127.0.0.1:6378>
127.0.0.1:6378> randomkey
"bar"
127.0.0.1:6378> randomkey
"drink"
127.0.0.1:6378> randomkey
"Back1"
127.0.0.1:6378>
1.6 EXPIRE key seconds
为给定 key 设置生存时间【秒为单位】,当 key 过期时(生存时间为 0 ),它会被自动删除。如果是使用Redis作为缓存,则一定要设置过期时间。
127.0.0.1:6378> keys a2
1) "a2"
127.0.0.1:6378> expire a2 10
(integer) 1
127.0.0.1:6378> keys a2
1) "a2"
127.0.0.1:6378> keys a2
1) "a2"
127.0.0.1:6378> keys a2 # 10s过后,a2自动删除
(empty list or set)
127.0.0.1:6378>
1.7 PEXPIRE key milliseconds
这个命令和 EXPIRE
命令的作用类似,但是它以毫秒为单位设置 key 的生存时间,而不像命令那样,以秒为单位。
1.8 EXPIREAT key timestamp
作用和EXPIRE
类似,都用于为 key设置生存时间。不同在于EXPIREAT
命令接受的时间参数是 UNIX 时间戳(unix timestamp)。【秒】
127.0.0.1:6378> set a1 a1
OK
# [ root~]# date +%Y:%m:%d/%H:%M:%S -d @1608566580
# 2020:12:22/00:03:00
127.0.0.1:6378> expireat a1 1608568580
(integer) 1
127.0.0.1:6378> keys a1
1) "a1"
127.0.0.1:6378> keys a1
(empty list or set)
127.0.0.1:6378>
1.9 PEXPIREAT key milliseconds-timestamp
和 EXPIREAT
命令类似,但它以毫秒为单位设置 key 的过期 unix 时间戳,而不是像EXPIREAT
那样,以秒为单位。【毫秒】
1.10 TTL key
以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)。【秒为单位】
127.0.0.1:6378> ttl a1
(integer) 430
127.0.0.1:6378> ttl a1
(integer) 428
127.0.0.1:6378> ttl a1
(integer) 427
1.11PTTL key
类似于 TTL
命令,但它以毫秒为单位返回key的剩余生存时间,而不是像 TTL
命令那样,以秒为单位。【毫秒为单位】
网友评论