Redis SET 命令用于设置给定 key 的值。如果 key 已经存储其他值, SET 就覆写旧值,且无视类型。
语法
redis SET 命令基本语法如下:
redis 127.0.0.1:6379> SET KEY_NAME VALUE
可用版本

>= 1.0.0
返回值
在 Redis 2.6.12 以前版本, SET 命令总是返回 OK 。
从 Redis 2.6.12 版本开始, SET 在设置操作成功完成时,才返回 OK 。
实例
首先,我们在 redis 中创建一个 key 并设置值。
# 对不存在的键进行设置

redis 127.0.0.1:6379> SET key “value”
OK

redis 127.0.0.1:6379> GET key
“value”
# 对已存在的键进行设置

redis 127.0.0.1:6379> SET key “new-value”
OK

redis 127.0.0.1:6379> GET key
“new-value”

Redis 字符串(string)

Redis 字符串数据类型的相关命令用于管理 redis 字符串值,基本语法如下:

语法
redis 127.0.0.1:6379> COMMAND KEY_NAME
实例
redis 127.0.0.1:6379> SET w3ckey redis OK redis 127.0.0.1:6379> GET w3ckey “redis”
在以上实例中我们使用了 SET 和 GET 命令,键为 w3ckey。

Redis 字符串命令
下表列出了常用的 redis 字符串命令:

序号 命令及描述
1 SET key value 设置指定 key 的值
2 GET key 获取指定 key 的值。
3 GETRANGE key start end 返回 key 中字符串值的子字符
4 GETSET key value 将给定 key 的值设为 value ,并返回 key 的旧值(old value)。
5 GETBIT key offset 对 key 所储存的字符串值,获取指定偏移量上的位(bit)。
6 MGET key1 [key2..] 获取所有(一个或多个)给定 key 的值。
7 SETBIT key offset value 对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)。
8 SETEX key seconds value 将值 value 关联到 key ,并将 key 的过期时间设为 seconds (以秒为单位)。
9 SETNX key value 只有在 key 不存在时设置 key 的值。
10 SETRANGE key offset value 用 value 参数覆写给定 key 所储存的字符串值,从偏移量 offset 开始。
11 STRLEN key 返回 key 所储存的字符串值的长度。
12 MSET key value [key value …] 同时设置一个或多个 key-value 对。
13 MSETNX key value [key value …] 同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。
14 PSETEX key milliseconds value 这个命令和 SETEX 命令相似,但它以毫秒为单位设置 key 的生存时间,而不是像 SETEX 命令那样,以秒为单位。
15 INCR key 将 key 中储存的数字值增一。
16 INCRBY key increment 将 key 所储存的值加上给定的增量值(increment) 。
17 INCRBYFLOAT key increment 将 key 所储存的值加上给定的浮点增量值(increment) 。
18 DECR key 将 key 中储存的数字值减一。
19 DECRBY key decrement key 所储存的值减去给定的减量值(decrement) 。
20 APPEND key value 如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原来的值的末尾。

Redis Type 命令用于返回 key 所储存的值的类型。

语法
redis Renamenx 命令基本语法如下:

redis 127.0.0.1:6379> TYPE KEY_NAME
可用版本
>= 1.0.0

返回值
返回 key 的数据类型,数据类型有:

none (key不存在)
string (字符串)
list (列表)
set (集合)
zset (有序集)
hash (哈希表)
实例
# 字符串

redis> SET weather “sunny”
OK

redis> TYPE weather
string

# 列表

redis> LPUSH book_list “programming in scala”
(integer) 1

redis> TYPE book_list
list

# 集合

redis> SADD pat “dog”
(integer) 1

redis> TYPE pat
set

Redis key(键)

Redis Renamenx 命令用于在新的 key 不存在时修改 key 的名称 。

语法
redis Renamenx 命令基本语法如下:

redis 127.0.0.1:6379> RENAMENX OLD_KEY_NAME NEW_KEY_NAME
可用版本
>= 1.0.0

返回值
修改成功时,返回 1 。 如果 NEW_KEY_NAME 已经存在,返回 0 。

实例
# newkey 不存在,改名成功

redis> SET player “MPlyaer”
OK

redis> EXISTS best_player
(integer) 0

redis> RENAMENX player best_player
(integer) 1

# newkey存在时,失败

redis> SET animal “bear”
OK

redis> SET favorite_animal “butterfly”
OK

redis> RENAMENX animal favorite_animal
(integer) 0

redis> get animal
“bear”

redis> get favorite_animal
“butterfly”

Redis key(键)

redis Rename 命令基本语法如下:

redis 127.0.0.1:6379> RENAME OLD_KEY_NAME NEW_KEY_NAME
可用版本
>= 1.0.0

返回值
改名成功时提示 OK ,失败时候返回一个错误。

当 OLD_KEY_NAME 和 NEW_KEY_NAME 相同,或者 OLD_KEY_NAME 不存在时,返回一个错误。 当 NEW_KEY_NAME 已经存在时, RENAME 命令将覆盖旧值。

实例
# key 存在且 newkey 不存在

redis> SET message “hello world”
OK

redis> RENAME message greeting
OK

redis> EXISTS message # message 不复存在
(integer) 0

redis> EXISTS greeting # greeting 取而代之
(integer) 1

# 当 key 不存在时,返回错误

redis> RENAME fake_key never_exists
(error) ERR no such key

# newkey 已存在时, RENAME 会覆盖旧 newkey

redis> SET pc “lenovo”
OK

redis> SET personal_computer “dell”
OK

redis> RENAME pc personal_computer
OK

redis> GET pc
(nil)

redis:1> GET personal_computer # 原来的值 dell 被覆盖了
“lenovo”

Redis key(键)