经过上一文章的介绍,相信大家对redis多少有点了解了,并且已经在自己的电脑上的Linux系统中安装了Redis。
通用命令的介绍
本文章主要介绍Redis中的通用命令(也就是key相关的命令)。
select命令
在redis中,默认一共有16个数据库,编号为0-15,正常情况下,用户登录成功后,首先看到的是0号库,我们可以使用select
命令进行手动的切换其他库。
127.0.0.1:6379> select 4
OK
127.0.0.1:6379[4]> get name
(nil)
127.0.0.1:6379[4]> get age
(nil)
127.0.0.1:6379[4]> select 0
OK
127.0.0.1:6379> get k1
"v1"
127.0.0.1:6379> get names
"zhangsan"
keys * 命令
我们可以使用keys *
命令查看当前库中有哪些key,其中 *
表示通配符,keys aa*
表示查看当前库中,以aa开头的key有哪些。(注:
其中*
也可以是一个正则表达式)。
127.0.0.1:6379> keys *
1) "aac"
2) "k3"
3) "k4"
4) "aab"
5) "names"
6) "k1"
7) "k2"
8) "k5"
127.0.0.1:6379> keys aa*
1) "aac"
2) "aab"
del 命令
我们可以通过del命令删除一个已经存在的key
127.0.0.1:6379> keys *
1) "aac"
2) "k3"
3) "k4"
4) "aab"
5) "k1"
6) "k2"
7) "name"
8) "k5"
127.0.0.1:6379> del name
(integer) 1
127.0.0.1:6379> keys *
1) "aac"
2) "k3"
3) "k4"
4) "aab"
5) "k1"
6) "k2"
7) "k5"
127.0.0.1:6379> del aac aab
(integer) 2
127.0.0.1:6379> keys *
1) "k3"
2) "k4"
3) "k1"
4) "k2"
5) "k5"
dump命令
dump可以用来序列化给定的key,并返回被序列化的值。
127.0.0.1:6379> get name
"zhangsna"
127.0.0.1:6379> dump name
"\x00\bzhangsna\t\x00\x99\xb7\xea\x87\xcf\x96\xb7\x02"
127.0.0.1:6379> dump names
(nil)
127.0.0.1:6379>
如果key不存在,则返回nil
exists命令
可以使用exists命令检测一个key是否存在返回1表示存在,返回0表示不存在。
(并且可以检测多个key)
127.0.0.1:6379> exists name
(integer) 1
127.0.0.1:6379> exists names
(integer) 0
127.0.0.1:6379> exists name names k1
(integer) 2
127.0.0.1:6379>
ttl命令
使用ttl命令可以查看key的过期时间,默认情况下,所有的key都不会过期,返回值为-1
127.0.0.1:6379> ttl name
(integer) -1
如果返回值为-2,表示对应的key已经过期,或者没有该key。
127.0.0.1:6379> ttl name
(integer) -1
127.0.0.1:6379> ttl names
(integer) -2
127.0.0.1:6379>
如果返回其他值,则表示key的有效期。
expire命令
expire命令可以给key设置有效期,在有效期过后,key会被销毁。
127.0.0.1:6379> expire name 10
(integer) 1
127.0.0.1:6379> ttl name
(integer) 6
127.0.0.1:6379> ttl name
(integer) -2
127.0.0.1:6379>
10表示10秒,ttl name 返回6表示这个key的有效期还剩6秒,返回-2表示该key已被销毁。
persist命令
persist命令可以移除一个key的过期时间,这样该key就永久不会过期;
127.0.0.1:6379> expire name 60
(integer) 1
127.0.0.1:6379> ttl name
(integer) 56
127.0.0.1:6379> persist name
(integer) 1
127.0.0.1:6379> ttl name
(integer) -1
127.0.0.1:6379>
pexpire命令
pexpire命令的功能和expire命令的功能基本一致,只不过这里设置的参数是毫秒;
127.0.0.1:6379> pexpire name 10000
(integer) 1
127.0.0.1:6379> pttl name
(integer) 4983
pttl命令
pttl命令和ttl命令基本一致,只不过pttl返回的是毫秒值。
127.0.0.1:6379> pexpire name 10000
(integer) 1
127.0.0.1:6379> pttl name
(integer) 4983
127.0.0.1:6379> pttl name
(integer) 2597
127.0.0.1:6379> pttl name
(integer) 344
127.0.0.1:6379> pttl name
(integer) -2
127.0.0.1:6379>
randomkey命令
randomkey命令可以从当前数据库中随机返回一个key
127.0.0.1:6379> keys *
1) "k3"
2) "k4"
3) "k1"
4) "k2"
5) "k5"
127.0.0.1:6379> randomkey
"k3"
127.0.0.1:6379> randomkey
"k5"
127.0.0.1:6379> randomkey
"k1"
127.0.0.1:6379> randomkey
"k2"
127.0.0.1:6379>
type命令
用于返回对应key的数据类型
127.0.0.1:6379> type k3
string
127.0.0.1:6379> type k5
string
127.0.0.1:6379>
不存在返回none
rename命令
rename命令用于修改key的名称
127.0.0.1:6379> rename k1 kk
OK
127.0.0.1:6379> exists k1
(integer) 0
127.0.0.1:6379> exists kk
(integer) 1
127.0.0.1:6379>
flushdb命令
用于清空当前库,此命令永远不会失败!!!
127.0.0.1:6379> keys *
1) "k3"
2) "kk"
3) "k4"
4) "k2"
5) "k5"
127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379>
flushall
清空所有库。