缓存方案

缓存介绍

  • 作用
    • 减小数据库的访问压力, 提高并发能力
  • 多级缓存

缓存粒度

  • 缓存某个数值
    • 一个键只保存一个值, 性价比较低, 使用率低
    • 场景 验证码

  • 缓存数据对象
    • 数据库记录对应的具体数据
    • 优点 可以多次复用
    • 场景 用户/文章数据

  • 缓存数据集合
    • 数据库查询对应的结果集
    • 场景 文章/关注列表
    • 可以和数据对象配合使用, 方便数据对象的重用

  • 缓存视图响应
    • 视图返回的响应数据
    • 缺点 复用性比较差
  • 项目中主要对 数据集合+数据对象 进行缓存, 优点 复用性强, 节省内存

数据格式 (重点)

  • 数值
    • 类型 string

  • 数据对象
    • hash
      • 可以直接更新某个字段, 不需要格式转换
      • 占用的空间比较多
    • 结构化string (json字符串)
      • 更新字段需要进行转换
      • 占用的空间小
    • 头条项目中优先使用结构化string

  • 数据集合
    • article:top:30 / md5("select * from t_arcitle order by(create_time) desc limit 30;")
    • 值 list/zset/set/hash/结构化string
    • list
      • 有遍历的需要
    • zset
      • 有排序的需要
    • set
      • 有判断是否存在的需要
    • hash
      • 需要记录字段, 空间占用多
    • json字符串
      • 节省空间
    • 头条项目中主要使用了json字符串zset的形式

  • 视图响应
    • string
    • 键 请求URL
    • 值 响应结果对应的字符串 前端渲染json字符串/后端渲染html字符串
posted @ 2019-08-27 19:01  太虚真人  阅读(240)  评论(0编辑  收藏  举报