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

相关推荐
weixin_511255215 小时前
MySQL升级记录
数据库·mysql
程序猿乐锅6 小时前
【黑马点评 | 第八篇】Redisson分布式锁
java·数据库·spring boot·redis·分布式·spring·缓存
Leo.yuan7 小时前
2026年本地化Data Agent优质厂商盘点:哪些产品更适合企业生产环境
大数据·数据库·人工智能
做运维的阿瑞7 小时前
数据库增删改的安全写法
数据库·sql·mysql
程序边界7 小时前
迁移评估不再拍脑袋,这个数据迁移工具的量化报告把我救了(上)
数据库
阿狗童鞋8 小时前
Redis实战指南
数据库·redis·缓存
frjc8 小时前
数据库选型:如何从众多数据库中选出最理想的那一个
redis·mysql·clickhouse·elasticsearch
lupai9 小时前
维修保养记录精准版 API 对接实战指南
数据库·python
panpan161911 小时前
Redis命令大全
redis
2601_9521963612 小时前
计算机科学与技术专业应届生投商业分析岗,需要哪些额外能力?
数据库·oracle