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

相关推荐
小光学长11 分钟前
基于vue框架的电信用户业务管理系统的设计与实现8ly70(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库
程序员不想YY啊26 分钟前
MySQL元数据库完全指南:探秘数据背后的数据
数据库·mysql·oracle
数据最前线30 分钟前
Doris表设计与分区策略:让海量数据管理更高效
数据库
时光追逐者39 分钟前
MongoDB从入门到实战之MongoDB快速入门(附带学习路线图)
数据库·学习·mongodb
头顶秃成一缕光1 小时前
Redis的主从模式和哨兵模式
数据库·redis·缓存
AIGC大时代1 小时前
高效使用DeepSeek对“情境+ 对象 +问题“型课题进行开题!
数据库·人工智能·算法·aigc·智能写作·deepseek
博睿谷IT99_1 小时前
数据库证书可以选OCP认证吗?
数据库·oracle·开闭原则·ocp认证
乐维_lwops1 小时前
数据库监控 | MongoDB监控全解析
数据库·mongodb·数据库监控
观无1 小时前
Redis安装及入门应用
数据库·redis·缓存
柏油2 小时前
MySql InnoDB 事务实现之 undo log 日志
数据库·后端·mysql