命令 | 描述 | 语法 |
Set | 赋值 | SET key value |
Get | 获取值 | GET key |
APPEND | 追加字符串 | APPEND key value |
STRLEN | 返回key的长度 | STRLEN key |
INCR | 数值加一 | INCR key |
INCRBY | 设置增加数值的步长 | INCRBY key increment |
DECR | 数值减一 | DECR key |
DECRBY | 设置减少数值的步长 | DECRBY key decrement |
SETRANGE | 字符串替换 | SETRANGE key start "value" |
GETRANGE | 截取字符串 | GETRANGE key start end |
SETEX | 设置key在服务器中存在的时间 | SETEX key seconds value |
SETNX | Key不存在设置值,否则不做操作 | SETNX key value |
MSET | 设置多个key、value | MSET key value [key value ...] |
MGET | 返回多个key的值 | MGET key [key ...] |
MSETNX | Key不存在设置多个key、value值,否则不做操作 | MSETNX key value [key value ...] |
GETSET | 先获取旧值再赋新值 | GETSET key value |
1、SET key value 将字符串值value关联到key。如果key已经持有其他值,SET就覆写就值,无视类型。
返回值: SET 在设置操作成功完成时,才返回 OK 。SET 命令的行为可以通过一系列参数来修改:
EX second :设置键的过期时间为 second 秒。
PX millisecond :设置键的过期时间为 millisecond 毫秒。
NX :只在键不存在时,才对键进行设置操作。
XX :只在键已经存在时,才对键进行设置操作。
示例:
# 对不存在的key进行设置
127.0.0.1:6379> SET k1 1
OK
127.0.0.1:6379> GET k1
"1"
# 对已存在的key进行设置
127.0.0.1:6379> SET k2 "value2"
OK
127.0.0.1:6379> GET k2
"value2"
# 使用EX选项,设置键的过期时间为 second 秒。
127.0.0.1:6379> SET k3 3 EX 86400
OK
127.0.0.1:6379> GET k3
"3"
127.0.0.1:6379> TTL k3
(integer) 86387
127.0.0.1:6379> SET k3 33
OK
# 使用PX选项,设置键的过期时间为 millisecond 毫秒。
127.0.0.1:6379> SET k4 4 PX 86400
OK
127.0.0.1:6379> GET k4
"4"
127.0.0.1:6379> PTTL k4
(integer) 68219
# 使用NX选项,只在键不存在时,才对键进行设置操作。
127.0.0.1:6379> SET k5 5 NX
OK
127.0.0.1:6379> GET k5
"5"
127.0.0.1:6379> SET k5 "k55" NX
(nil)
127.0.0.1:6379> GET k5
"4"
# 使用XX选项,只在键已经存在时,才对键进行设置操作。
127.0.0.1:6379> EXISTS k6
(integer) 0
127.0.0.1:6379> SET k6 6 XX
(nil)
127.0.0.1:6379> SET k6 6
OK
127.0.0.1:6379> SET k6 "xx666" XX
OK
127.0.0.1:6379> GET k6
"xx666"
# NX 或 XX 可以和 EX 或者 PX 组合使用
127.0.0.1:6379> SET key-nx "hello" EX 10086 NX
OK
127.0.0.1:6379> GET key-nx
"hello"
127.0.0.1:6379> TTL key-nx
(integer) 10075
127.0.0.1:6379> SET key-xx "old value"
OK
127.0.0.1:6379> SET key-xx "new value" PX 123321 XX
OK
127.0.0.1:6379> GET key-xx
"new value"
127.0.0.1:6379> PTTL key-xx
(integer) 107932
# EX 和 PX 可以同时出现,但后面给出的选项会覆盖前面给出的选项
127.0.0.1:6379> SET key "value" EX 1000 PX 5000000 # 这是 EX 参数设置的值
OK
127.0.0.1:6379> TTL key
(integer) 4993
127.0.0.1:6379> SET another-key "value" PX 5000000 EX 1000 # 这是 EX 参数设置的值
OK
127.0.0.1:6379> TTL another-key
(integer) 995
2、GET key 返回 key 所关联的字符串值。
返回值:如果 key 不存在时,返回 nil ,否则,返回 key 的值。 如果 key 不是字符串类型,那么返回一个错误。
示例:
127.0.0.1:6379> GET key11
(nil)
127.0.0.1:6379> SET key11 123
OK
127.0.0.1:6379> get key11
"123"
3、APPEND key value 如果 key 已经存在并且是一个字符串,APPEND 命令将 value 追加到 key 原来的值的末尾。 如果 key 不存在,APPEND 就简单地将给定 key 设为 value ,就像执行 SET key value 一样。
返回值:追加 value 之后,key 中字符串的长度。
示例:
127.0.0.1:6379> EXISTS myappend
(integer) 0
127.0.0.1:6379> APPEND myappend "redis—append-key"
(integer) 16
127.0.0.1:6379> APPEND myappend " - mc114e"
(integer) 25
127.0.0.1:6379> GET myappend
"redis—append-key - mc114e"
4、STRLEN key 返回 key 所储存的字符串值的长度。
返回值:字符串值的长度。 当 key 不存在时,返回 0 。
示例:
127.0.0.1:6379> SET mykey "Hello Redis"
OK
127.0.0.1:6379> STRLEN mykey
(integer) 11
127.0.0.1:6379> STRLEN nokey
(integer) 0
5、INCR key 将 key 中储存的数字值增一。如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行INCR 操作。 如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
返回值:执行INCR 命令之后 key 的值。示例:
127.0.0.1:6379> set count 20
OK
127.0.0.1:6379> INCR count
(integer) 21
127.0.0.1:6379> get count
"21"
127.0.0.1:6379> set name hello
OK
127.0.0.1:6379> INCR name
(error) ERR value is not an integer or out of range
127.0.0.1:6379> get name
"hello"
6、INCRBY key increment 将 key 所储存的值加上增量 increment 。如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行INCRBY 命令。 如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。本操作的值限制在 64 位 (bit) 有符号数字表示之内。
返回值:加上 increment 之后,key 的值。
示例:
127.0.0.1:6379> SET rank 50
OK
127.0.0.1:6379> INCRBY rank 20
(integer) 70
127.0.0.1:6379> EXISTS counter
(integer) 0
127.0.0.1:6379> INCRBY counter 30
(integer) 30
7、DECR key 将 key 中储存的数字值减一。如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行DECR 操作。如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。本操作的值限制在 64 位 (bit) 有符号数字表示之内。
返回值:执行DECR 命令之后 key 的值。
示例:
127.0.0.1:6379> SET failure_times 10
OK
127.0.0.1:6379> DECR failure_times
(integer) 9
127.0.0.1:6379> EXISTS count
(integer) 0
127.0.0.1:6379> DECR count
(integer) -1
8、DECRBY key decrement 将 key 所储存的值减去减量 decrement 。如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行DECRBY 操作。如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。本操作的值限制在 64 位 (bit) 有符号数字表示之内。
返回值: 减去 decrement 之后,key 的值。示例:
127.0.0.1:6379> SET count 100
OK
127.0.0.1:6379> DECRBY count 20
(integer) 80
127.0.0.1:6379> EXISTS pages
(integer) 0
127.0.0.1:6379> DECRBY pages 10
(integer) -10
9、SETRANGE key offset value 用 value 参数覆写 (overwrite) 给定 key 所储存的字符串值,从偏移量 offset 开始。不存在的 key 当作空白字符串处理。
返回值:被SETRANGE 修改之后,字符串的长度。
示例:
127.0.0.1:6379> SET greeting "hello world"
OK
127.0.0.1:6379> SETRANGE greeting 6 "Redis"
(integer) 11
127.0.0.1:6379> GET greeting
"hello Redis"
127.0.0.1:6379> EXISTS empty_string
(integer) 0
127.0.0.1:6379> SETRANGE empty_string 5 "Redis!"
(integer) 11
127.0.0.1:6379> GET empty_string
"\x00\x00\x00\x00\x00Redis!"
10、GETRANGE key start end 返回 key 中字符串值的子字符串,字符串的截取范围由 start 和 end 两个偏移量决定 (包括 start 和 end在内)。负数偏移量表示从字符串最后开始计数,-1 表示最后一个字符,-2 表示倒数第二个,以此类推。
返回值: 截取得出的子字符串。
示例:
127.0.0.1:6379> SET greeting "hello, my friend"
OK
127.0.0.1:6379> GETRANGE greeting 0 4 # 返回索引 0-4 的字符,包括 4。
"hello"
127.0.0.1:6379> GETRANGE greeting -1 -5 # 不支持回绕操作
""
127.0.0.1:6379> GETRANGE greeting -3 -1 # 负数索引
"end"
127.0.0.1:6379> GETRANGE greeting 0 -1 # 从第一个到最后一个
"hello, my friend"
127.0.0.1:6379> GETRANGE greeting 0 1008611 # 值域范围不超过实际字符串,超过部分自动被忽略
"hello, my friend"
11、SETEX key seconds value 将值 value 关联到 key ,并将 key 的生存时间设为 seconds (以秒为单位)。如果 key 已经存在,SETEX 命令将覆写旧值。
这个命令类似于以下两个命令:
SET key value
EXPIRE key seconds # 设置生存时间
不同之处是,SETEX 是一个原子性 (atomic) 操作,关联值和设置生存时间两个动作会在同一时间内完成,该命令在 Redis 用作缓存时,非常实用。
返回值:设置成功时返回 OK 。当 seconds 参数不合法时,返回一个错误。
示例:
127.0.0.1:6379> SETEX key1 86400 1 # 在 key 不存在时进行 SETEX
OK
127.0.0.1:6379> GET key1
"1"
127.0.0.1:6379> TTL key1 # 剩余生存时间
(integer) 86390
127.0.0.1:6379> SET key2 2
OK
127.0.0.1:6379> SETEX key2 86400 "key_2" # key 已经存在时,SETEX 覆盖旧值
OK
127.0.0.1:6379> GET key2
"key_2"
127.0.0.1:6379> TTL key2 # 剩余生存时间
(integer) 86388
12、SETNX key value 将 key 的值设为 value ,当且仅当 key 不存在。若给定的 key 已经存在,则SETNX 不做任何动作。 SETNX 是『SET if Not eXists』(如果不存在,则 SET) 的简写。
返回值:设置成功,返回 1 。 设置失败,返回 0 。
示例:
127.0.0.1:6379> EXISTS key_nx
(integer) 0
127.0.0.1:6379> SETNX key_nx abc
(integer) 1
127.0.0.1:6379> SETNX key_nx "key_nx"
(integer) 0
127.0.0.1:6379> GET key_nx
"abc"
13、MSET key value [key value …]同时设置一个或多个 key-value 对。如果某个给定 key 已经存在,那么MSET 会用新值覆盖原来的旧值,如果这不是你所希望的效果,请考虑使用MSETNX 命令:它只会在所有给定 key 都不存在的情况下进行设置操作。
返回值:总是返回 OK (因为 MSET 不可能失败)。
示例:
127.0.0.1:6379> MSET k1 1 k2 2 k3 3
OK
127.0.0.1:6379> MGET k1 k2 k3
1) "1"
2) "2"
3) "3"
14、MGET key [key …] 返回所有 (一个或多个) 给定 key 的值。如果给定的 key 里面,有某个 key 不存在,那么这个 key 返回特殊值 nil 。因此,该命令永不失败。
返回值: 一个包含所有给定 key 的值的列表。
示例:
127.0.0.1:6379> MSET k1 1 k2 2 k3 3
OK
127.0.0.1:6379> MGET k1 k2 k4
1) "1"
2) "2"
3) (nil)
15、MSETNX key value [key value …] 同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。即使只有一个给定 key 已存在,MSETNX 也会拒绝执行所有给定 key 的设置操作。
返回值:当所有 key 都成功设置,返回 1 。如果所有给定 key 都设置失败 (至少有一个 key 已经存在),那么返回 0 。
示例:
127.0.0.1:6379> msetnx uname "lisi" uage 33 uemail "12306@163.com"
(integer) 1
127.0.0.1:6379> MGET uname uage uemail
1) "lisi"
2) "33"
3) "12306@163.com"
127.0.0.1:6379> MSETNX uname "zhangsan" ugender 1
(integer) 0
127.0.0.1:6379> EXISTS ugender
(integer) 0
127.0.0.1:6379> get uname
"lisi"
16、GETSET key value 将给定 key 的值设为 value ,并返回 key 的旧值 (old value)。当 key 存在但不是字符串类型时,返回一个错误。
返回值:返回给定 key 的旧值。当 key 没有旧值时,也即是,key 不存在时,返回 nil 。
示例:
127.0.0.1:6379> EXISTS db
(integer) 0
127.0.0.1:6379> GETSET db mongodb
(nil)
127.0.0.1:6379> GET db
"mongodb"
127.0.0.1:6379> GETSET db redis
"mongodb"
127.0.0.1:6379> GET db
"redis"
(完毕)
转载:http://blog.csdn.net/thinkercode/article/details/46538173