Redis 入门:从安装到常用数据结构与缓存使用注意

举报
yd_259811995 发表于 2026/11/01 06:13:08 2026/11/01
【摘要】 Redis 是一种基于内存的开源数据结构存储系统,常被用作数据库、缓存和消息中间件。它把数据放在内存中读写,速度很快,同时支持持久化到磁盘,因此既能扛住高并发读请求,也能在重启后恢复数据。 安装与启动 在 Linux 上安装 Redis 通常有两种方式:用系统包管理器安装,或者从源码编译。包管理器方式最省事,安装后可以用 systemctl 启动服务并设置开机自启动;源码方式则适合想指定版本...

Redis 是一种基于内存的开源数据结构存储系统,常被用作数据库、缓存和消息中间件。它把数据放在内存中读写,速度很快,同时支持持久化到磁盘,因此既能扛住高并发读请求,也能在重启后恢复数据。

安装与启动 在 Linux 上安装 Redis 通常有两种方式:用系统包管理器安装,或者从源码编译。包管理器方式最省事,安装后可以用 systemctl 启动服务并设置开机自启动;源码方式则适合想指定版本或开启特定模块的场景。安装完成后,先用 redis-cli ping 测试连通性,返回 PONG 说明服务已正常工作。刚开始学习时,建议在本地虚拟机或容器里练习,不要直接在生产服务器上做实验。启动时要注意绑定地址和端口,默认端口是 6379。本地练习可以只监听 127.0.0.1,公网部署则必须设置密码、关闭危险命令并配置防火墙,否则很容易被扫描和利用。

String:最常用的键值类型 String 是 Redis 最基础的类型,一个键对应一个字符串值,可以存文本、数字甚至二进制数据。常用命令包括 SET、GET、INCR、DECR 和 SETEX。计数器、分布式锁的雏形、简单的配置项都可以用 String 实现。需要注意,单个值不宜过大;把大对象整体塞进一个键里,会让网络传输和序列化成本变高,更新时也只能整体覆盖。

Hash:把对象拆成字段 Hash 适合表示一个对象,例如用户信息、商品详情。可以用 HSET 设置多个字段,用 HGET、HGETALL 读取。相比把整个对象序列化成一个 String,Hash 的好处是可以只读、只改其中一个字段,节省流量,也更直观。字段名要有统一规范,避免同一个对象出现多种写法。

List:有序的队列与栈 List 是按插入顺序排列的字符串列表,支持从两端压入和弹出。LPUSH、RPUSH、LPOP、RPOP、LRANGE 是最常用的命令。它天然适合做消息队列、最新动态列表和任务队列。要注意读取方式:如果用 LRANGE 每次取全量,列表变长后开销会变大;做分页时应控制范围,或者改用更适合分页的结构。

Set:不重复的集合 Set 是无序、不重复的字符串集合,支持 SADD、SREM、SMEMBERS,以及求交集、并集、差集。标签、好友关系、去重判断都可以用 Set 实现。例如给文章打标签后,用交集可以快速找出同时带有两个标签的文章。Set 不保证顺序,如果业务需要按顺序展示,就不要依赖它的返回顺序。

ZSet:带分数的有序集合 ZSet 在 Set 的基础上给每个成员加了一个分数,成员按分数排序。ZADD、ZRANGE、ZRANGEBYSCORE、ZREVRANGE 是核心命令。排行榜、按时间排序的动态、延迟任务的简单实现都适合用 ZSet。分数设计要提前想好:排行榜用积分,时间线用时间戳,分数相同时的排序规则也要在业务里说清楚。

缓存使用注意 把 Redis 当缓存用时,第一要设过期时间,没有过期时间的缓存会越积越多,最终占满内存;热点数据和冷数据的过期策略应该分开。第二要处理缓存与数据库不一致的问题:常见做法是先更新数据库再删除缓存,或者接受短时间不一致并用较短过期时间兜底。第三要防缓存穿透、击穿和雪崩:对不存在的键做短暂缓存,热点键过期时加互斥保护,大批量键不要同一时刻过期。第四要控制键的命名和粒度,键名建议带业务前缀,例如 user:1001,便于排查和清理。最后,缓存只是加速手段,关键数据仍要以数据库为准,缓存挂了服务也应能降级运行。

小结 从安装启动到五种常用数据结构,Redis 的学习路径很清晰:先跑起来,再按场景选类型,最后在真实业务里处理过期、一致性和异常。把 String 做计数,Hash 做对象,List 做队列,Set 做去重和标签,ZSet 做排序,多数日常需求就已经覆盖了。下一步可以继续学习持久化、主从复制和集群部署,把单机 Redis 用稳,再逐步走向生产可用的架构。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。