keys
keys用来获取符合指定规则的键,keys的语法规则如下:
keys <pattern>
比如最简单的全等匹配,下面这个命令只会匹配键值完全等于foo的:
127.0.0.1:6379> keys foo 1) "foo"
可以使用通配符*来匹配所有的键,下面这条命令可以用来查看所有的key:
127.0.0.1:6379> keys * 1) "foo" 2) "foobar"
可以组合一下,比如查看包含foo的键值:
127.0.0.1:6379> keys foo* 1) "foo" 2) "foobar"
keys支持glob风格的通配符格式,glob格式是一种在shell下使用的通配符格式,类似于正则但没有正则那么强大,下面是一个支持列表:
? 匹配一个字符
* 匹配任意多个字符,包括0个字符也算数,有趣的是它是包含
[...] 匹配括号中任意一个字符,可以使用符号来表示一个范围,比如[a-z]
\x 用来匹配转义字符,比如?表示匹配一个字符,\?表示匹配字面值意义的问号?
exists
exists用于判断一个键是否存在,如果指定的键值存在的话返回1,否则返回0,当指定了多个key的时候返回值会累加,即返回的是找到的已存在的键的个数,语法格式是:
exists key [key ...]
需要注意的是exists不支持glob通配符模式。
判断单个的键是否存在:
127.0.0.1:6379> exists foo (integer) 1
判断多个键值是否存在,会对每一个键值进行判断然后将结果累加返回,比如:
127.0.0.1:6379> exists foo foobar bar (integer) 2
返回值为2表示exists后面指定的键值列表中有两个key是存在的。
set
set用于设置一个字符串类型的键,最简单的用法是:
set key value
比如:
127.0.0.1:6379> set foo bar OK
del
del用来删除已经存在的键,其返回值是被删除掉的键的个数,其语法如下:
del key [key ...]
比如用来删除单个的key:
127.0.0.1:6379> del foo (integer) 1
用来删除多个key,返回的是被删除的key的个数,不存在的key不算数的:
127.0.0.1:6379> del foo foobar (integer) 1
使用glob匹配模式删除多个键
可以使用redis-cli来执行命令,shell中用飘号``围起来的部分会被执行,del又可以接受多个key,所以可以这样来使用glob匹配模式删除:
redis-cli -a nopasswd DEL `redis-cli -a nopasswd KEYS 'foo*'`
type
type用于获取键值的数据类型,
type key
举个栗子:
127.0.0.1:6379> type foo string
返回值为以下的一种:
string(字符串类型)、hash(散列类型)、list(列表类型)、set(集合类型)、zset(有序集合类型)。
.