Redis 字符串数据类型的相关命令用于管理 Redis 字符串值。基本命令如下:
命令 | 说明 | 返回值 | 示例 |
---|---|---|---|
SET key value | 用于设置指定 key 的值,如果 key 已经存储其他值,则覆盖,且无视类型 | 执行成功返回 OK | |
GET key | 用于获取指定 key 的值 | 如果 key 不存在,返回 nil,如果 key 不是字符串类型,返回错误 | |
GETRANGE key start end | 用于获取存储在指定 key 中字符串的子字符串。截取范围由 start 和 end 两个偏移量决定,前闭后闭区间(下标) | 截取得到的子字符串 | |
GETSET key value | 用于设置指定 key 的值,并返回 key 的旧值 | 返回指定 key 的旧值。当 key 没有旧值,即 key 不存在时,返回 nil,当 key 存在但不是字符串类型时,返回一个错误 | |
GETBIT key offset | 用于对 key 所存储的值获取指定偏移量上的比特值 | 字符串指定偏移量上的比特值。如果偏移量 offset 超出字符串的长度,或者 key 不存在时返回 0 | |
MGET key1 [key2 ...] | 获取所有(一个或多个)给定 key 的值 | 返回一个包含所有给定 key 的值的列表。如果指定的 key 当中有某个 key 不存在,则该 key 对应的值返回 nil | |
SETBIT key offset value | 用于对 key 所储存的字符串值设置或清除指定偏移量上的比特值 | 指定偏移量上原来储存比特值 | |
SETEX key seconds value | 为指定的 key 设置值以及过期时间(单位为秒),如果 key 已经存在,将会替换旧值 | 成功返回 OK | |
SETNX key value | 仅当 key 不存在时,为 key 设置指定值(SET if not eXists) | 成功返回1,失败返回0 | |
SETRANGE key offset value | 用指定的字符串覆盖给定 key 对应的值,覆盖的位置从 offset 开始 | 返回修改后的字符串的长度 | |
STRLEN key | 用于获取指定 key 所存储的字符串值的长度 | 返回字符串值的长度,key 不存在时,返回0,key 存储的不是字符串值时,返回错误 | |
MSET key value [key value ...] | 用于同时设置一个或多个键值对 | 永远返回 OK | |
MSETNX key value [key value ...] | 用于所有给定 key 值都不存在时,同时设置一个或多个键值对 | 当所有 key 值都设置成功时返回1,否则返回0 | |
PSETEX key milliseconds value | 设置 key 的有效期,单位为毫秒 | 成功返回 OK | |
INCR key | 用于将 key 中存储的数字值加1,如果 key 不存在,那么 key 会被先初始化为 0,然后再执行 INCR 操作。如果值包含错误的类型或字符串等不能表示为数字的类型,则返回错误 | 返回执行成功之后的 key 所对应的值 | |
INCRBY key increment | 用于将 key 中存储的数字值加上指定增量,如果 key 不存在,那么 key 会被先初始化为 0,然后再执行 INCRBY 操作。如果值包含错误的类型或字符串等不能表示为数字的类型,则返回错误 | 返回加上指定增量之后的 key 所对应的值 | |
INCRBYFLOAT key increment | 用于为指定 key 中所存储的值加上指定的浮点数增量,如果 key 不存在,则先将 key 初始化为 0,再执行命令 | 返回值为 key 所对应的值 | |
DECR key | 用于将 key 中存储的数字值减1,如果 key 不存在,那么 key 会被先初始化为 0,然后再执行 DECR 操作。如果值包含错误的类型或字符串等不能表示为数字的类型,则返回错误 | 返回执行成功之后的 key 所对应的值 | |
DECRBY key decrement | 用于将 key 中存储的数字值减去指定增量,如果 key 不存在,那么 key 会被先初始化为 0,然后再执行 DECRBY 操作。如果值包含错误的类型或字符串等不能表示为数字的类型,则返回错误 | 返回减去指定增量之后的 key 所对应的值 | |
APPEND key value | 用于为指定的 key 所对应的值追加值,如果 key 不存在,就相当于 SET | 返回执行命令之后 key 所对应的值的长度 | |
详细的命令介绍参考官网
SETBIT key offset value 命令解释:
新设置一个键值对:A-a。
在 Redis 中,存储的字符串都是以二进制形式存在的。'a' 的 ASCII 码是 97,转换为二进制是:0110 0001。二进制中的每一位就是 offset(偏移量)的值,比如在此二进制中,offset 0 = 0, offset 1 = 1,offset 2 = 1,offset 7 = 1。offset 是从左往右计数的。
我们可以通过 SETBIT 命令将 A 中存储的 "a" 改为 "b",也就是将二进制 0110 0001 变为 0110 0010,就是将 offset 6 的 0 变为 1,将 offset 7 的 1 变为 0。
返回值为修改之前的 offset 的比特值。