后端缓存与 redis 应用
在实际业务场景中,涉及到数据缓存时,Redis 作为一种高性能缓存工具,常被应用于提升系统性能和降低数据库负载。
业务场景分析
我们以一个简单博客系统为例。系统需要记录文章的点赞总数和用户是否点过赞。在采用 mysql 时,实现逻辑较为简单。然而,当考虑采用 Redis 时,一些设计问题值得关注。
错误理解:Redis 同步 MySQL
题主存在一个错误理解:认为 Redis 数据需同步到 MySQL 中。这个理解是不正确的。Redis 主要充当缓存的角色,与 MySQL 的关系为缓存分离(Cache Aside)。
正确应用:Cache Aside
Cache Aside 模式下,数据操作遵循以下流程:
-
读操作:
- 先从 Redis 中获取数据。
- 如果有,直接返回。
- 如果没有,则从 MySQL 中查询并写入 Redis。
-
写操作:
- 先将数据更新到 MySQL 中。
- 然后删除 Redis 中对应的数据。
具体场景应用
在博客系统场景中,当用户刷新页面查询某篇文章点赞数时:
- 后端先从 Redis 中查询点赞数。
- 如果 Redis 中有数据,直接返回。
- 如果 Redis 中没有数据,则从 MySQL 中查询并写入 Redis 中,返回结果。
而当用户点赞或取消点赞时:
- 后端先将点赞信息更新到 MySQL 中。
- 然后删除 Redis 中该文章对应的点赞数缓存。
这样设计,既能利用 Redis 的高性能缓存特性提升系统性能,同时又能保证数据一致性。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END