您的位置:首页 > 文旅 > 美景 > 东莞做网站软件_建筑公司网站首页图片_新闻稿营销_seo就业指导

东莞做网站软件_建筑公司网站首页图片_新闻稿营销_seo就业指导

2025/4/16 3:31:28 来源:https://blog.csdn.net/u013049194/article/details/147198085  浏览:    关键词:东莞做网站软件_建筑公司网站首页图片_新闻稿营销_seo就业指导
东莞做网站软件_建筑公司网站首页图片_新闻稿营销_seo就业指导

基于redis 实现我的收藏功能优化详细设计方案

一、架构设计
+---------------------+          +---------------------+
|     客户端请求        |          |     数据存储层        |
|  (收藏列表查询)       |          |  (Redis Cluster)     |
+---------------------+          +---------------------+|                                ↑↓                                |
+---------------------+          +---------------------+
|    API网关层         |<--------|  数据库层             |
|  (Spring Boot)      |          |  (MySQL Cluster)     |
+---------------------+          +---------------------+|↓
+---------------------+
|   缓存策略引擎        |
|  (多级缓存管理)       |
+---------------------+
二、数据存储设计
  1. MySQL表结构
CREATE TABLE user_favorites (id BIGINT PRIMARY KEY AUTO_INCREMENT,user_id BIGINT NOT NULL COMMENT '用户ID',VARCHAR(64) NOT NULL COMMENT '收藏项ID',item_type TINYINT NOT NULL COMMENT '收藏类型(1:招标 2:公告...)',collected_at DATETIME DEFAULT CURRENT_TIMESTAMP,is_deleted TINYINT DEFAULT 0,INDEX idx_user_item(user_id, item_type)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
  1. Redis数据结构
# 用户收藏元数据缓存
favorite_meta:{user_id}:{item_type} = Hash {"item_id1": "收藏时间戳","item_id2": "收藏时间戳"
}# 热点收藏项详情缓存
favorite_detail:{item_type}:{item_id} = String {"JSON序列化的详情数据"
}# 布隆过滤器键
bloom_filter:favorites = BloomFilter
三、核心流程优化
  1. 查询流程
sequenceDiagramparticipant C as Clientparticipant S as Serverparticipant R as Redisparticipant M as MySQLC->>S: 请求收藏列表(user_id, page, size)S->>R: EXISTS favorite_meta:{user_id}alt 缓存存在>>S: 存在S->>R: HGETALL favorite_meta:{user_id}R-->>S: 返回元数据S->>R: MGET favorite_detail:{item_ids}S->>C: 返回完整列表else 缓存不存在R-->>S: 不存在S->>M: 查询MySQL获取数据M-->>S: 返回结果集S->>R: HSET favorite_meta:{user_id} + EXPIRES->>R: SET favorite_detail:{item_ids} + EXPIRES->>C: 返回结果end
  1. 写入流程

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com