redis基本数据类型(string字符串)
存储类型
int(整数)、float(单精度浮点数)、string(字符串)
常用操作命令
set
-
命令
SET key value [EX seconds] [PX milliseconds] [NX|XX]
-
说明
将键key设定为指定的“字符串”值。
如果 key 已经保存了一个值,那么这个操作会直接覆盖原来的值,并且忽略原始类型。
当set命令执行成功之后,之前设置的过期时间都将失效 -
选项
从2.6.12版本开始,redis为SET命令增加了一系列选项:- EX seconds – 设置键key的过期时间,单位时秒
- PX milliseconds – 设置键key的过期时间,单位时毫秒
- NX – 只有键key不存在的时候才会设置key的值
- XX – 只有键key存在的时候才会设置key的值
注意: 由于SET命令加上选项已经可以完全取代SETNX, SETEX, PSETEX的功能,所以在将来的版本中,redis可能会不推荐使用并且最终抛弃这几个命令。
-
返回值
如果
SET
命令正常执行那么回返回OK
,否则如果加了NX
或者XX
选项,但是没有设置条件。那么会返回nil。 -
例子
redis> SET mykey "Hello" OK redis> GET mykey "Hello" redis>
get
-
命令
GET key
-
说明
返回
key
的value
。如果key不存在,返回特殊值nil
。如果key
的value
不是string,就返回错误,因为GET
只处理string类型的values
。 -
返回值
key对应的value,或者nil(key不存在时)
-
例子
redis> GET nonexisting (nil) redis> SET mykey "Hello" OK redis> GET mykey "Hello" redis>
mset
-
命令
MSET key value [key value ...]
-
说明
对应给定的keys到他们相应的values上。
MSET
会用新的value替换已经存在的value,就像普通的SET命令一样。如果你不想覆盖已经存在的values,请参看命令MSETNX。MSET
是原子的,所以所有给定的keys是一次性set的。客户端不可能看到这种一部分keys被更新而另外的没有改变的情况。 -
返回值
总是OK,因为MSET不会失败。
-
例子
redis> MSET key1 "Hello" key2 "World" OK redis> GET key1 "Hello" redis> GET key2 "World" redis>
mget
-
命令
MGET key [key ...]
-
说明
返回所有指定的key的value。对于每个不对应string或者不存在的key,都返回特殊值
nil
。正因为此,这个操作从来不会失败。 -
返回值
指定的key对应的values的list
-
例子
redis> SET key1 "Hello" OK redis> SET key2 "World" OK redis> MGET key1 key2 nonexisting 1) "Hello" 2) "World" 3) (nil) redis>
getrange
-
命令
GETRANGE key start end
-
说明
警告:这个命令是被改成GETRANGE的,在小于2.0的Redis版本中叫SUBSTR。 返回key对应的字符串value的子串,这个子串是由start和end位移决定的(两者都在string内)。可以用负的位移来表示从string尾部开始数的下标。所以-1就是最后一个字符,-2就是倒数第二个,以此类推。
这个函数处理超出范围的请求时,都把结果限制在string内。
-
例子
redis> SET mykey "This is a string" OK redis> GETRANGE mykey 0 3 "This" redis> GETRANGE mykey -3 -1 "ing" redis> GETRANGE mykey 0 -1 "This is a string" redis> GETRANGE mykey 10 100 "string" redis>
strlen
-
命令
STRLEN key
-
说明
返回key的string类型value的长度。如果key对应的非string类型,就返回错误。
-
返回值
key对应的字符串value的长度,或者0(key不存在)
-
例子
redis> SET mykey "Hello world" OK redis> STRLEN mykey (integer) 11 redis> STRLEN nonexisting (integer) 0 redis>
append
-
命令
APPEND key value
-
说明
如果
key
已经存在,并且值为字符串,那么这个命令会把value
追加到原来值(value)的结尾。 如果key
不存在,那么它将首先创建一个空字符串的key
,再执行追加操作,这种情况 APPEND 将类似于 SET 操作。 -
返回值
返回append后字符串值(value)的长度。
-
例子
redis> EXISTS mykey (integer) 0 redis> APPEND mykey "Hello" (integer) 5 redis> APPEND mykey " World" (integer) 11 redis> GET mykey "Hello World" redis>
incr
-
命令
INCR key
-
说明
对存储在指定
key
的数值执行原子的加1操作。如果指定的key不存在,那么在执行incr操作之前,会先将它的值设定为
0
。如果指定的key中存储的值不是字符串类型(fix:)或者存储的字符串类型不能表示为一个整数,
那么执行这个命令时服务器会返回一个错误(eq:(error) ERR value is not an integer or out of range)。
这个操作仅限于64位的有符号整型数据。
注意: 由于redis并没有一个明确的类型来表示整型数据,所以这个操作是一个字符串操作。
执行这个操作的时候,key对应存储的字符串被解析为10进制的64位有符号整型数据。
事实上,Redis 内部采用整数形式(Integer representation)来存储对应的整数值,所以对该类字符串值实际上是用整数保存,也就不存在存储整数的字符串表示(String representation)所带来的额外消耗。
-
返回值
执行递增操作后
key
对应的值。 -
例子
redis> SET mykey "10" OK redis> INCR mykey (integer) 11 redis> GET mykey "11" redis>
incrby
-
命令
INCRBY key increment
-
说明
将key对应的数字加decrement。如果key不存在,操作之前,key就会被置为0。如果key的value类型错误或者是个不能表示成数字的字符串,就返回错误。这个操作最多支持64位有符号的正型数字。
查看命令INCR了解关于增减操作的额外信息。
-
返回值
增加之后的value值。
-
例子
redis> SET mykey "10" OK redis> INCRBY mykey 5 (integer) 15 redis>
incrbyfloat
-
命令
INCRBYFLOAT key increment
-
说明
通过指定浮点数
key
来增长浮点数(存放于string中)的值. 当键不存在时,先将其值设为0再操作.下面任一情况都会返回错误:- key 包含非法值(不是一个string).
- 当前的key或者相加后的值不能解析为一个双精度的浮点值.(超出精度范围了)
如果操作命令成功, 相加后的值将替换原值存储在对应的键值上, 并以string的类型返回. string中已存的值或者相加参数可以任意选用指数符号,但相加计算的结果会以科学计数法的格式存储. 无论各计算的内部精度如何, 输出精度都固定为小数点后17位
-
返回值
当前
key
增加increment后的值。 -
例子
redis> SET mykey 10.50 OK redis> INCRBYFLOAT mykey 0.1 "10.6" redis> SET mykey 5.0e3 OK redis> INCRBYFLOAT mykey 2.0e2 "5200" redis>
decr
-
命令
DECR key
-
说明
对key对应的数字做减1操作。如果key不存在,那么在操作之前,这个key对应的值会被置为0。如果key有一个错误类型的value或者是一个不能表示成数字的字符串,就返回错误。这个操作最大支持在64位有符号的整型数字。
查看命令INCR了解关于增减操作的额外信息。
-
返回值
减小之后的value
-
例子
redis> SET mykey "10" OK redis> DECR mykey (integer) 9 redis> SET mykey "234293482390480948029348230948" OK redis> DECR mykey ERR value is not an integer or out of range redis>
decrby
-
命令
DECRBY key decrement
-
说明
将key对应的数字减decrement。如果key不存在,操作之前,key就会被置为0。如果key的value类型错误或者是个不能表示成数字的字符串,就返回错误。这个操作最多支持64位有符号的正型数字。
查看命令INCR了解关于增减操作的额外信息。
-
返回值
返回一个数字:减少之后的value值。
-
例子
redis> SET mykey "10" OK redis> DECRBY mykey 5 (integer) 5 redis>
del
-
命令
DEL key [key ...]
-
说明
删除指定的一批keys,如果删除中的某些key不存在,则直接忽略。
-
返回值
被删除的keys的数量
-
例子
redis> SET key1 "Hello" OK redis> SET key2 "World" OK redis> DEL key1 key2 key3 (integer) 2 redis>