## 一、字符串
~~~
127.0.0.1:6379> SET name redis
OK
127.0.0.1:6379> GET name
"redis"
127.0.0.1:6379> del name
(integer) 1
~~~
* MGET (多个值的获取)
~~~
127.0.0.1:6379> SET key1 "hello"
OK
127.0.0.1:6379> SET key2 "world"
OK
127.0.0.1:6379> MGET key1 key2 someOtherKey
~~~
* SETEX (将值 value 关联到 key ,并将 key 的过期时间设为 seconds (以秒为单位)。)
~~~
127.0.0.1:6379> SETEX mykey 60 redis
OK
127.0.0.1:6379> TTL mykey
(integer) 54
127.0.0.1:6379> GET mykey
"redis"
127.0.0.1:6379>
~~~
* SETNX key value(只有在 key 不存在时设置 key 的值。)
~~~
redis> EXISTS job # job 不存在
(integer) 0
redis> SETNX job "programmer" # job 设置成功
(integer) 1
redis> SETNX job "code-farmer" # 尝试覆盖 job ,失败
(integer) 0
redis> GET job # 没有被覆盖
"programmer"
~~~
* STRLEN key(返回 key 所储存的字符串值的长度。)
~~~
# 获取字符串的长度
redis> SET mykey "Hello world"
OK
redis> STRLEN mykey
(integer) 11
# 不存在的 key 长度为 0
redis> STRLEN nonexisting
(integer) 0
~~~
* [MSET key value 【同时设置一个或多个 key-value 对。】](https://www.runoob.com/redis/strings-mset.html)
~~~
redis 127.0.0.1:6379> MSET key1 "Hello" key2 "World"
OK
redis 127.0.0.1:6379> GET key1
"Hello"
redis 127.0.0.1:6379> GET key2
1) "World"
~~~
* [SETRANGE key offset value【用 value 参数覆写给定 key 所储存的字符串值,从偏移量 offset 开始。】](https://www.runoob.com/redis/strings-setrange.html)
~~~
redis 127.0.0.1:6379> SET key1 "Hello World"
OK
redis 127.0.0.1:6379> SETRANGE key1 6 "Redis"
(integer) 11
redis 127.0.0.1:6379> GET key1
"Hello Redis"
~~~
* [INCR key【将 key 中储存的数字值增一。】](https://www.runoob.com/redis/strings-incr.html)
~~~
redis> SET page_view 20
OK
redis> INCR page_view
(integer) 21
redis> GET page_view # 数字值在 Redis 中以字符串的形式保存
"21"
~~~
* [INCRBY key increment【将 key 所储存的值加上给定的增量值(increment)】](https://www.runoob.com/redis/strings-incrby.html)
~~~
# key 存在且是数字值
redis> SET rank 50
OK
redis> INCRBY rank 20
(integer) 70
redis> GET rank
"70"
# key 不存在时
redis> EXISTS counter
(integer) 0
redis> INCRBY counter 30
(integer) 30
redis> GET counter
"30"
# key 不是数字值时
redis> SET book "long long ago..."
OK
redis> INCRBY book 200
(error) ERR value is not an integer or out of range
~~~
* [DECR key【将 key 中储存的数字值减一】](https://www.runoob.com/redis/strings-decr.html)
~~~
# 对存在的数字值 key 进行 DECR
redis> SET failure_times 10
OK
redis> DECR failure_times
(integer) 9
# 对不存在的 key 值进行 DECR
redis> EXISTS count
(integer) 0
redis> DECR count
(integer) -1
# 对存在但不是数值的 key 进行 DECR
redis> SET company YOUR_CODE_SUCKS.LLC
OK
redis> DECR company
(error) ERR value is not an integer or out of range
~~~
* [DECRBY key decrement【key 所储存的值减去给定的减量值(decrement)】](https://www.runoob.com/redis/strings-decrby.html)
~~~
# 对已存在的 key 进行 DECRBY
redis> SET count 100
OK
redis> DECRBY count 20
(integer) 80
# 对不存在的 key 进行DECRBY
redis> EXISTS pages
(integer) 0
redis> DECRBY pages 10
(integer) -10
~~~
* [APPEND key value【如果 key 已经存在并且是一个字符串, APPEND 命令将指定的 value 追加到该 key 原来值(value)的末尾。】](https://www.runoob.com/redis/strings-append.html)
~~~
# 对不存在的 key 执行 APPEND
redis> EXISTS myphone # 确保 myphone 不存在
(integer) 0
redis> APPEND myphone "nokia" # 对不存在的 key 进行 APPEND ,等同于 SET myphone "nokia"
(integer) 5 # 字符长度
# 对已存在的字符串进行 APPEND
redis> APPEND myphone " - 1110" # 长度从 5 个字符增加到 12 个字符
(integer) 12
redis> GET myphone
"nokia - 1110"
~~~