Redis 字符串存储字节序列,包括文本、序列化对象和二进制数组。因此,字符串是最基本的 Redis 数据类型。它们通常用于缓存,还支持额外的功能,允许您实现计数器并执行按位操作等。
Redis 中字符串数据类型的相关命令用于管理 redis 字符串值,基本语法如下:
COMMAND KEY_NAME
(1)在 Redis 中存储并检索字符串,如下:
127.0.0.1:6379> set user:1 hxstrive.com OK 127.0.0.1:6379> get user:1 "hxstrive.com"
(2)存储序列化的JSON字符串,并将其设置为从现在起100秒过期,如下:
127.0.0.1:6379> set ticket:23 "\"{'username':'hxstrive','token':'9C550FB24572A7C9576A4DC5C6D7292C'}\"" EX 100 OK 127.0.0.1:6379> get ticket:23 "\"{'username':'hxstrive','token':'9C550FB24572A7C9576A4DC5C6D7292C'}\""
(3)增加计数器,如下:
127.0.0.1:6379> set age 100 OK 127.0.0.1:6379> incr age (integer) 101 127.0.0.1:6379> incrby age 10 (integer) 111
注意:默认情况下,单个 Redis 字符串的最大值为 512MB。
下面列出了常用的 redis 字符串命令。
用来设置指定 key 的值。语法如下:
SET key value
实例:
127.0.0.1:6379> set name hello OK 127.0.0.1:6379> get name "hello"
获取指定 key 的值。语法如下:
GET key
实例:
127.0.0.1:6379> set name hello OK 127.0.0.1:6379> get name "hello"
返回 key 中字符串值的子字符。语法如下:
GETRANGE key start end
实例:
127.0.0.1:6379> set name administrator OK 127.0.0.1:6379> getrange name 0 5 "admini"
将给定 key 的值设为 value ,并返回 key 的旧值(old value)。语法如下:
GETSET key value
实例:
127.0.0.1:6379> set name admin OK 127.0.0.1:6379> getset name administrator "admin"
对 key 所储存的字符串值,获取指定偏移量上的位(bit)。语法如下:
GETBIT key offset
实例:
# 字符串 a 的二进制为 01100001 127.0.0.1:6379> set name a OK # 获取第一个bit位 127.0.0.1:6379> getbit name 0 (integer) 0 # 获取第二个bit位 127.0.0.1:6379> getbit name 1 (integer) 1
获取所有(一个或多个)给定 key 的值。语法如下:
MGET key1 [key2..]
实例:
127.0.0.1:6379> set name1 hello OK 127.0.0.1:6379> set name2 world OK 127.0.0.1:6379> mget name1 name2 1) "hello" 2) "world"
对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)。语法如下:
SETBIT key offset value
实例:
# 字符串 a 的二进制为 01100001 127.0.0.1:6379> set name a OK # 将字符串 a 的第二个bit设置为0,即 00100001 127.0.0.1:6379> setbit name 2 0 (integer) 1 127.0.0.1:6379> get name "A"
将值 value 关联到 key ,并将 key 的过期时间设为 seconds (以秒为单位)。语法如下:
SETEX key seconds value
实例:
# 设置 name 的过期时间为 120 秒 127.0.0.1:6379> setex name 120 "hello world" OK 127.0.0.1:6379> get name "hello world"
只有在 key 不存在时设置 key 的值。语法如下:
SETNX key value
实例:
127.0.0.1:6379> set key1 hello OK # 因为 key1 已经存在,设置失败 127.0.0.1:6379> setnx key1 world (integer) 0 # 因为 key2 不存在,设置成功 127.0.0.1:6379> setnx key2 world (integer) 1 # 查看 key1 和 key2 的内容 127.0.0.1:6379> mget key1 key2 1) "hello" 2) "world"
用 value 参数覆写给定 key 所储存的字符串值,从偏移量 offset 开始。语法如下:
SETRANGE key offset value
实例:
127.0.0.1:6379> set mykey administrator OK 127.0.0.1:6379> setrange mykey 5 ##### (integer) 13 127.0.0.1:6379> get mykey "admin#####tor"
返回 key 所储存的字符串值的长度。语法如下:
STRLEN key
实例:
127.0.0.1:6379> set mykey administrator OK 127.0.0.1:6379> strlen mykey (integer) 13
同时设置一个或多个 key-value 对。语法如下:
MSET key value [key value ...]
实例:
127.0.0.1:6379> mset mykey1 value1 mykey2 value2 mykey3 value3 OK 127.0.0.1:6379> mget mykey1 mykey2 mykey3 1) "value1" 2) "value2" 3) "value3"
同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。语法如下:
MSETNX key value [key value ...]
实例:
127.0.0.1:6379> set mykey1 hello OK 127.0.0.1:6379> set mykey2 world OK 127.0.0.1:6379> msetnx mykey1 value1 mykey2 value2 mykey3 value3 (integer) 0 127.0.0.1:6379> mget mykey1 mykey2 mykey3 1) "hello" 2) "world" 3) (nil)
这个命令和 SETEX 命令相似,但它以毫秒为单位设置 key 的生存时间,而不是像 SETEX 命令那样,以秒为单位。语法如下:
PSETEX key milliseconds value
实例:
127.0.0.1:6379> psetex mykey 100000 "hello world" OK 127.0.0.1:6379> get mykey "hello world"
如果 key 已经存在并且是一个字符串, APPEND 命令将指定的 value 追加到该 key 原来值(value)的末尾。语法如下:
APPEND key value
实例:
127.0.0.1:6379> get mykey "hello world" 127.0.0.1:6379> append mykey ". administrator" (integer) 26 127.0.0.1:6379> get mykey "hello world. administrator"
将 key 中储存的数字值增一。语法如下:
INCR key
实例:
127.0.0.1:6379> set count 1 OK 127.0.0.1:6379> incr count (integer) 2 127.0.0.1:6379> get count "2"
将 key 所储存的值加上给定的增量值(increment) 。语法如下:
INCRBY key increment
实例:
127.0.0.1:6379> set count 1 OK 127.0.0.1:6379> incrby count 10 (integer) 11 127.0.0.1:6379> get count "11"
将 key 所储存的值加上给定的浮点增量值(increment) 。语法如下:
INCRBYFLOAT key increment
实例:
127.0.0.1:6379> set salary 100.5 OK 127.0.0.1:6379> incrbyfloat salary 2.4 "102.90000000000000568" 127.0.0.1:6379> get salary "102.90000000000000568"
将 key 中储存的数字值减一。语法如下:
DECR key
实例:
127.0.0.1:6379> set count 100 OK 127.0.0.1:6379> decr count (integer) 99 127.0.0.1:6379> get count "99"
key 所储存的值减去给定的减量值(decrement) 。语法如下:
DECRBY key decrement
实例:
127.0.0.1:6379> set count 100 OK 127.0.0.1:6379> decrby count 20 (integer) 80 127.0.0.1:6379> get count "80"
更多命令请访问 https://redis.io/commands 进行参考。