1. Redis基础命令概述
Redis作为当今最流行的内存数据库之一,其命令行接口是每个开发者必须掌握的核心技能。我在实际项目中发现,80%的日常Redis操作都集中在约20个基础命令上。这些命令看似简单,但其中隐藏着许多影响性能的关键细节。
不同于官方文档的平铺直叙,我将从实战角度重新梳理这些命令。以最常见的字符串类型为例,SET命令表面看只是存储键值对,但在高并发场景下,配合NX/XX参数可以实现分布式锁的基础功能。而GET命令在value超过10KB时就会明显影响吞吐量,这是很多新手容易忽视的性能陷阱。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心数据类型与对应命令
2.1 字符串(String)操作精要
SET/GET命令组合是Redis的"Hello World",但有几个关键参数需要特别注意:
code复制SET user:1001 "张三" EX 60 NX # 设置60秒过期且仅当key不存在时
GET user:1001
经验:EX参数单位是秒,PX则是毫秒。生产环境建议总是明确设置过期时间,避免内存泄漏。
MSET/MGET批量操作能显著减少网络往返时间:
code复制MSET config:max_conn 100 config:timeout 30
MGET config:max_conn config:timeout
实测显示,批量处理10个key比单条命令快8-12倍。但要注意单次批量操作不宜超过50个key,否则会阻塞其他请求。
2.2 哈希(Hash)高效存储方案
对于对象存储,Hash比String更节省内存。我们对比两种存储用户信息的方式:
bash复制# 方式一:String存储JSON
SET user:1001 '{"name":"张三","age":28}'
# 方式二:Hash存储
HSET user:1001 name "张三" age 28
当字段超过5个时,Hash结构可节省30%以上内存。HGETALL虽然方便,但在字段多时会成为性能瓶颈,建议用HMGET按需获取:
bash复制HMGET user:1001 name age
2.3 列表(List)消息队列实践
LPUSH/RPOP组合可实现简单队列:
bash复制LPUSH orders 1
