全局命令
我们先介绍三个常用的全局命令,更多的全局命令会在以后的进阶文章中一一展开。
key pattern
pattern支持global风格通配符格式,规则如下:
符号 | 含义 |
---|---|
? | 匹配一个字符 |
* | 匹配任意个字符(包含0个)字符 |
[] | 匹配括号区间的任一字符,可以使用”-“表示一个范围,如a[b-d]可以匹配”ab”、”ac”、”ad” |
\x | 匹配字符x,用于转译符号。如果要匹配”?”就需要使用”\?” |
建立一个名为sunshine的键,代码如下:
redis> SET sunshine handsome
然后使用KEYS *就能获得Redis中的所有键,代码如下:
redis> KEYS *
sunshine
redis> KEYS s*
sunshine
Redis不区分命令大小写。
EXISTS key
EXISTS key用来判断一个键是否存在,如果存在则返回整数类型1,否则返回0,代码如下:
redis> EXISTS sunshine
(integer) 1
redis> EXISTS Iverson
(integer) 0
DEL key
DEL用来删除键,可以删除一个或多个键,返回值是删除的键的个数,代码如下:
redis> SET Allen Iverson
redis> KEYS A*
Allen
redis> DEL Allen
(integer) 1
redis> DEL Allen
(integer) 0
第二次执行DEL命令时,Allen键已经被删除了,没有删除任何键,所以返回0。
TYPE key
TYPE key用于获得键值的数据类型,返回值可能是string、hash、list、set、zset,代码如下:
redis> TYPE sunshine
string
redis> LPUSH push sunshine
(integer) 1
redis> TYPE push
list
字符串类型
字符串类型是Redis中最基本的数据类型,它能存储任何形式的字符串,包括二进制数据。你可以用其存储用户的邮箱、JSON化的对象,甚至是一张图片。一个字符串类型键允许存储的数据的最大容量是512MB。
字符串类型是其他4种数据类型的基础,其他数据类型和字符串类型的差别从某种角度来说只是组织字符串的形式不同。例如,列表类型是以列表的形式组织字符串,而集合类型则是以集合的形式组织字符串。
SET and GET
SET key value
GET key
SET和GET是Redis中最简单的两个命令,它们实现的功能和编程语言中的读写变量相似,代码如下:
127.0.0.1:6379> SET sunshine handsome
OK
127.0.0.1:6379> GET sunshine
"handsome"
当键不存在时,会返回空结果,代码如下:
127.0.0.1:6379> GET liyixiang
(nil)
INCR key
Redis的string可以存储任何形式的字符串,当存储的字符串是整数形式时,Redis提供了一个实用的命令INCR,其作用就是让当前键值递增,并返回递增后的值,代码如下:
127.0.0.1:6379> INCR num
(integer) 1
127.0.0.1:6379> INCR num
(integer) 2
当要操作的键不存在时,默认值为0,当键值不是整数时Redis会提示错误,代码如下:
127.0.0.1:6379> INCR num
(error) ERR value is not an integer or out of range
INCRBY key increment与INCR key基本一样,前者可以根据increment参数指定一次增加的数值,代码如下:
127.0.0.1:6379> INCR num
(error) ERR value is not an integer or out of range
INCRBY key increment与INCR key基本一样,前者可以根据increment参数指定一次增加的数值,代码如下:
127.0.0.1:6379> INCRBY num 100
(integer) 102
127.0.0.1:6379> INCRBY num 200
(integer) 302
DECR key
DECR key和DECRBY key increment与INCR和INCRBY key increment命令用法相通,代码如下:
127.0.0.1:6379> DECRBY num 20
(integer) 282
127.0.0.1:6379> DECR num
(integer) 281
127.0.0.1:6379> DECR num
(integer) 280
DECRBY key 1相当于INCRBY key -1。
INCRBYFLOAT key increment可以递增一个双精度的浮点数,代码如下:
127.0.0.1:6379> INCRBYFLOAT num 0.1
"0.1"
127.0.0.1:6379> INCRBYFLOAT num 5E+4
"50000.10000000000000142"
APPEND key value
APPEND key value作用是向键值的末尾追加value。如果键不存在则将该键的值设置为value,返回值是追加后字符串的总长度,代码如下:
127.0.0.1:6379> APPEND sunshine "and wise"
(integer) 16
STRLEN key
STRLEN key命令返回键值的长度,如果键值不存在则返回0,代码如下:
127.0.0.1:6379> STRLEN sunshine
(integer) 16
127.0.0.1:6379> STRLEN zouziwen
(integer) 0
MGET与MSET
MGET/MSET用于同时获得/设置多个键的键值,代码如下:
127.0.0.1:6379> MSET sunshine wise Iverson handsome
OK
127.0.0.1:6379> GET sunshine
"wise"
127.0.0.1:6379> GET Iverson
"handsome"
127.0.0.1:6379> MGET sunshine Iverson
1) "wise"
2) "handsome"