Redis 从入门到精通(四):字符串操作详解

系列导读:本篇将深入讲解 Redis 字符串(String)的所有操作命令及实际应用场景。


文章目录


一、字符串命令总览

命令 说明
SET/GET 设置/获取值
SETEX/SETEX 设置带过期时间
SETNX 不存在时设置
MSET/MGET 批量设置/获取
INCR/DECR 递增/递减
APPEND 追加字符串
STRLEN 获取长度

二、基础操作命令

2.1 SET 命令详解

bash 复制代码
# 基本设置
SET key value

# 带参数设置
SET key value [NX|XX] [GET] [EX seconds|PX milliseconds]

# NX: 不存在时设置
SET lock:key "locked" NX

# XX: 存在时更新
SET key "newvalue" XX

# EX: 秒级过期
SET key "value" EX 60

# PX: 毫秒级过期
SET key "value" PX 60000

# GET: 返回旧值
SET key "newvalue" GET

2.2 GET 相关命令

bash 复制代码
# 获取值
GET key

# 获取并设置新值
GETSET key "newvalue"

# 获取子串
GETRANGE key 0 5

# 批量获取
MGET key1 key2 key3

2.3 字符串操作

bash 复制代码
# 追加内容
APPEND key "suffix"

# 获取长度
STRLEN key

# 设置子串
SETRANGE key 0 "new"

三、数值操作命令

3.1 递增操作

bash 复制代码
# +1
INCR counter

# +n
INCRBY counter 10

# +浮点数
INCRBYFLOAT price 2.5

3.2 递减操作

bash 复制代码
# -1
DECR counter

# -n
DECRBY counter 5

四、位操作命令

4.1 位操作

bash 复制代码
# 设置位
SETBIT mykey 0 1
SETBIT mykey 1 0

# 获取位
GETBIT mykey 0

# 统计1的个数
BITCOUNT mykey

# 位运算
BITOP AND destkey key1 key2
BITOP OR destkey key1 key2
BITOP XOR destkey key1 key2
BITOP NOT destkey key

五、实战应用场景

5.1 分布式锁

bash 复制代码
# 加锁
SET lock:resource "uuid" NX EX 30

# 解锁(Lua脚本保证原子性)
if redis.call("GET", KEYS[1]) == ARGV[1] then
    return redis.call("DEL", KEYS[1])
else
    return 0
end

5.2 计数器

bash 复制代码
# 文章阅读量
INCR article:100:views

# 限流计数
INCR rate:user:1001
EXPIRE rate:user:1001 60

5.3 缓存

bash 复制代码
# 缓存JSON数据
SET cache:user:1001 '{"name":"张三","age":25}'
EXPIRE cache:user:1001 3600

# 缓存穿透防护
SET cache:null:1001 "" EX 60

总结

本文我们学习了:

基础操作 :SET/GET/MSET/MGET

数值操作 :INCR/DECR/INCRBY

位操作 :SETBIT/GETBIT/BITCOUNT

应用场景:分布式锁、计数器、缓存

下篇预告Redis 从入门到精通(五):哈希操作详解


作者 :刘~浪地球
系列 :Redis 从入门到精通(四)
更新时间:2026-04-03

相关推荐
sbjdhjd6 小时前
Redis 主从复制、哨兵高可用与 Cluster 集群部署实验手册
运维·前端·redis·云原生·开源·bootstrap·html
AOwhisky7 小时前
MySQL 学习笔记(第四期):SQL 语言之多表查询
linux·运维·网络·数据库·笔记·学习·mysql
小红卒7 小时前
mysql之udf提权
数据库·mysql·网络安全
Trouvaille ~7 小时前
【Redis篇】Redis 哨兵(Sentinel):高可用自动故障转移
数据库·redis·缓存·中间件·sentinel·高可用·哨兵
qfljg7 小时前
oracle 迁移到postgres
数据库·oracle
giaz14n9X8 小时前
Redis 分布式锁进阶第五十七篇
数据库·redis·分布式
剑神一笑8 小时前
Linux ls 命令深度解析:从目录遍历到颜色输出的实现原理
linux·服务器·数据库
Maynor9968 小时前
Codex API 网关迁移与流量优化实战
数据库·oracle
WyCAGy8ij9 小时前
Redis 分布式锁进阶第二篇讲解
数据库·redis·分布式
南极企鹅9 小时前
MySQL的两大支柱:undo Log&redo log
数据库·mysql·oracle