Redis 数据类型string(字符串)

目录

[1 基本特性](#1 基本特性)

[2 主要操作命令](#2 主要操作命令)

[2.1 设置键值](#2.1 设置键值)

[2.1.1 SET key value [EX seconds] [PX milliseconds] [NX|XX]](#2.1.1 SET key value [EX seconds] [PX milliseconds] [NX|XX])

[2.1.2 MSET key value [key value ...]](#2.1.2 MSET key value [key value ...])

[2.1.3 SETEX key seconds value](#2.1.3 SETEX key seconds value)

[2.1.4 PSETEX key milliseconds value](#2.1.4 PSETEX key milliseconds value)

[2.1.5 APPEND key value](#2.1.5 APPEND key value)

[2.2 获取键值](#2.2 获取键值)

[2.2.1 GET key](#2.2.1 GET key)

[2.2.2 MGET key [key ...]](#2.2.2 MGET key [key ...])

[2.2.3 GETRANGE key start end](#2.2.3 GETRANGE key start end)

[2.2.4 STRLEN key](#2.2.4 STRLEN key)

[2.3 更新操作](#2.3 更新操作)

[2.3.1 INCR key](#2.3.1 INCR key)

[2.3.2 DECR key](#2.3.2 DECR key)

[2.3.3 INCRBY key increment](#2.3.3 INCRBY key increment)

[2.3.4 DECRBY key decrement](#2.3.4 DECRBY key decrement)

[2.3.5 INCRBYFLOAT key increment](#2.3.5 INCRBYFLOAT key increment)

[2.4 位操作](#2.4 位操作)

[2.4.1 SETBIT key offset value](#2.4.1 SETBIT key offset value)

[2.4.2 GETBIT key offset](#2.4.2 GETBIT key offset)

[2.4.3 BITCOUNT key [start] [end]](#2.4.3 BITCOUNT key [start] [end])

[2.4.4 BITOP operation destkey key [key ...]](#2.4.4 BITOP operation destkey key [key ...])

[2.5 其他](#2.5 其他)

[2.5.1 SETNX key value](#2.5.1 SETNX key value)

[2.5.2 GETSET key value](#2.5.2 GETSET key value)

[2.5.3 GETDEL key](#2.5.3 GETDEL key)


1 基本特性

  • 最大长度:在 Redis 5.0 及之后的版本中,单个字符串的最大长度是 512MB。
  • 内存优化:对于小的整数和短字符串,Redis 使用内部缓存来减少内存占用。
  • 编码方式:根据存储内容的不同,Redis 会自动选择合适的编码方式,比如 int、embstr 或 raw。

2 主要操作命令

2.1 设置键值
2.1.1 SET key value [EX seconds] [PX milliseconds] [NX|XX]

设置键的值。可选参数可以用来设置过期时间或仅在特定条件下设置。

复制代码
127.0.0.1:6379> set name java
OK
2.1.2 MSET key value [key value ...]

同时设置多个键值对。

复制代码
127.0.0.1:6379> mset name java1 name1 java2
OK
127.0.0.1:6379> get name
"java1"
127.0.0.1:6379> get name1
"java2"
2.1.3 SETEX key seconds value

设置键值的同时设置过期时间(以秒为单位)。例子设置过期时间为5秒。

复制代码
127.0.0.1:6379> setex name 5 jdk
OK
127.0.0.1:6379> get name
"jdk"
127.0.0.1:6379> get name
(nil)
2.1.4 PSETEX key milliseconds value

设置键值的同时设置过期时间(以毫秒为单位)。例子设置过期时间为3000毫秒。

复制代码
127.0.0.1:6379> psetex name 3000 jdk
OK
127.0.0.1:6379> get name
"jdk"
127.0.0.1:6379> get name
(nil)
2.1.5 APPEND key value

如果键已经存在,则将值追加到现有值后面;如果不存在,则创建新的键值对。

复制代码
127.0.0.1:6379> set name jdk
OK
127.0.0.1:6379> get name
"jdk"
127.0.0.1:6379> append name 1.8
(integer) 6
127.0.0.1:6379> get name
"jdk1.8"
2.2 获取键值
2.2.1 GET key

获取指定键的值。

复制代码
127.0.0.1:6379> get name
"jdk1.8"
2.2.2 MGET key [key ...]

同时获取多个键的值。

复制代码
127.0.0.1:6379> mget name name1
1) "jdk1.8"
2) "java2"
2.2.3 GETRANGE key start end

获取字符串的一部分。

复制代码
127.0.0.1:6379> get name
"jdk1.8"
127.0.0.1:6379> getrange name 0 3
"jdk1"
2.2.4 STRLEN key

返回字符串的长度。

复制代码
127.0.0.1:6379> get name
"jdk1.8"
127.0.0.1:6379> strlen name
(integer) 6
2.3 更新操作
2.3.1 INCR key

将键的值增加1,如果键不存在则初始化为0。

复制代码
127.0.0.1:6379> set number 3
OK
127.0.0.1:6379> incr number
(integer) 4
127.0.0.1:6379> get number
"4"
2.3.2 DECR key

将键的值减少1,如果键不存在则初始化为0。

复制代码
127.0.0.1:6379> get number
"4"
127.0.0.1:6379> decr number
(integer) 3
127.0.0.1:6379> get number
"3"
2.3.3 INCRBY key increment

将键的值增加指定的整数。

复制代码
127.0.0.1:6379> get number
"3"
127.0.0.1:6379> incrby number 5
(integer) 8
127.0.0.1:6379> get number
"8"
2.3.4 DECRBY key decrement

将键的值减少指定的整数。

复制代码
127.0.0.1:6379> get number
"8"
127.0.0.1:6379> decrby number 2
(integer) 6
127.0.0.1:6379> get number
"6"
2.3.5 INCRBYFLOAT key increment

将键的值增加指定的浮点数。

复制代码
127.0.0.1:6379> get number
"6"
127.0.0.1:6379> incrbyfloat number 0.5
"6.5"
127.0.0.1:6379> get number
"6.5"
2.4 位操作
2.4.1 SETBIT key offset value

设置或清除指定位置的位。

复制代码
127.0.0.1:6379> set name jdk
OK
127.0.0.1:6379> get name
"jdk"
# 将第 0 位设置为 1
127.0.0.1:6379> setbit name 0 1
(integer) 0
# 将第 3 位设置为 1
127.0.0.1:6379> setbit name 3 1
(integer) 0
127.0.0.1:6379> get name
"\xfadk"
2.4.2 GETBIT key offset

获取指定位置的位。

复制代码
127.0.0.1:6379> getbit name 0
(integer) 1
2.4.3 BITCOUNT key [start] [end]

计算给定范围内设置为1的位的数量。

复制代码
127.0.0.1:6379> bitcount name 0 1
(integer) 9
127.0.0.1:6379> bitcount name
(integer) 14
2.4.4 BITOP operation destkey key [key ...]

对一个或多个字符串进行位运算,并将结果保存在另一个键中。

复制代码
# 设置一些示例键
127.0.0.1:6379> SET key1 "\x01\x02\x03"  # 二进制表示为 00000001 00000010 00000011
OK
127.0.0.1:6379> SET key2 "\x04\x05\x06"  # 二进制表示为 00000100 00000101 00000110

# 执行 AND 操作
127.0.0.1:6379> BITOP AND result_key1 key1 key2
(integer) 3  # 结果长度为 3 字节
127.0.0.1:6379> GET result_key1
"\x00\x00\x02"  # 二进制表示为 00000000 00000000 00000010

# 执行 OR 操作
127.0.0.1:6379> BITOP OR result_key2 key1 key2
(integer) 3  # 结果长度为 3 字节
127.0.0.1:6379> GET result_key2
"\x05\x07\x07"  # 二进制表示为 00000101 00000111 00000111

# 执行 XOR 操作
127.0.0.1:6379> BITOP XOR result_key3 key1 key2
(integer) 3  # 结果长度为 3 字节
127.0.0.1:6379> GET result_key3
"\x05\x07\x05"  # 二进制表示为 00000101 00000111 00000101

# 执行 NOT 操作
127.0.0.1:6379> BITOP NOT result_key4 key1
(integer) 3  # 结果长度为 3 字节
127.0.0.1:6379> GET result_key4
"\xff\xfd\xfc"  # 二进制表示为 11111111 11111101 11111100
2.5 其他
2.5.1 SETNX key value

只有当键不存在时才设置键的值。

复制代码
127.0.0.1:6379> get name
"\xfadk"
127.0.0.1:6379> setnx name jdk
(integer) 0
127.0.0.1:6379> get name
"\xfadk"
2.5.2 GETSET key value

设置新值并返回旧值。

复制代码
127.0.0.1:6379> get name
"\xfadk"
127.0.0.1:6379> getset name jdk
"\xfadk"
127.0.0.1:6379> get name
"jdk"
2.5.3 GETDEL key

获取键的值并删除该键(Redis 6.2+)。

更多命令请参考:Commands | Docs

相关推荐
袋鼠云数栈2 小时前
国产数据库StarRocks在数栈轻量化数据开发的全流程实践
数据库
Listennnn2 小时前
Text2SQL、Text2API基础
数据库·人工智能
夜光小兔纸2 小时前
SQL Server 修改数据库名及物理数据文件名
运维·数据库·sql server
····懂···2 小时前
数据库专家 OCP 认证培训:开启职业黄金赛道
数据库·oracle·ocp
明月看潮生3 小时前
青少年编程与数学 01-011 系统软件简介 18 Navicat数据库管理工具
数据库·青少年编程·系统软件·编程与数学
眸笑丶3 小时前
.NET Core 数据库连接字符串加密与解密
数据库·oracle·.netcore
layman05285 小时前
openEuler 虚拟机中 Shell 脚本实现自动化备份与清理实践
数据库·oracle·自动化
奔跑的小十一12 小时前
JDBC接口开发指南
java·数据库
熊大如如12 小时前
PostgreSQL 创建只读账户
数据库·postgresql
在未来等你12 小时前
SQL进阶之旅 Day 29:NoSQL结合使用策略
redis·sql·mongodb·elasticsearch·postgresql·nosql·hybrid-database