Redis 字符串(String)

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字符串命令

下面列出了常用的 redis 字符串命令。

SET命令

用来设置指定 key 的值。语法如下:

SET key value

实例:

127.0.0.1:6379> set name hello
OK
127.0.0.1:6379> get name
"hello"

GET命令

获取指定 key 的值。语法如下:

GET key

实例:

127.0.0.1:6379> set name hello
OK
127.0.0.1:6379> get name
"hello"

GETRANGE命令

返回 key 中字符串值的子字符。语法如下:

GETRANGE key start end

实例:

127.0.0.1:6379> set name administrator
OK
127.0.0.1:6379> getrange name 0 5
"admini"

GETSET命令

将给定 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"

GETBIT命令

对 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

MGET命令

获取所有(一个或多个)给定 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"

SETBIT命令

对 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"

SETEX命令

将值 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"

SETNX命令

只有在 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"

SETRANGE命令

用 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"

STRLEN命令

返回 key 所储存的字符串值的长度。语法如下:

STRLEN key

实例:

127.0.0.1:6379> set mykey administrator
OK
127.0.0.1:6379> strlen mykey
(integer) 13

MSET命令

同时设置一个或多个 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"

MSETNX命令

同时设置一个或多个 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)

PSETEX命令

这个命令和 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"

APPEND命令

如果 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"

INCR命令

将 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"

INCRBY命令

将 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"

INCRBYFLOAT命令

将 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"

DECR命令

将 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"

DECRBY命令

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  进行参考。

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号