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

相关推荐
荒川之神2 小时前
MySQL 商品拉链表 完整最终版(配备了全套存储过程)
数据库·mysql
admin and root2 小时前
从资产收集FUZZ接口到SQL注入案例
网络·数据库·sql·安全·web安全·渗透测试·log4j
我真会写代码2 小时前
MySQL关键词全面总结(含用法+避坑指南)
数据库·mysql·索引
rainy雨2 小时前
精益数据分析系统功能拆解:如何用精益数据分析解决指标虚高难题与初创期验证场景
大数据·数据库·人工智能·信息可视化·数据挖掘·数据分析·精益工程
tycooncool2 小时前
QT数据库(三):QSqlQuery使用
数据库·qt·oracle
小陈工2 小时前
Python Web开发入门(十):数据库迁移与版本管理——让数据库变更可控可回滚
前端·数据库·人工智能·python·sql·云原生·架构
xhuiting2 小时前
Redis专题(二)
redis·缓存
zzh0813 小时前
MySQL主从复制读写分离笔记
数据库·mysql
APIshop3 小时前
京东关键词搜索接口完全指南
java·开发语言·数据库