• 缓存方案


    缓存介绍

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

    缓存粒度

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

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

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

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

    数据格式 (重点)

    • 数值
      • 类型 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字符串
  • 相关阅读:
    [转]如何从无到有建立推荐系统
    sql语句查询重复值
    推荐系统开发中十个关键点整理
    mongodb中的副本集搭建实践
    Unicode对象
    5W1H
    Python中实现switch分支结构
    数据结构-跳跃表
    redis入门笔记(3)
    redis入门笔记(2)
  • 原文地址:https://www.cnblogs.com/oklizz/p/11420198.html
Copyright © 2020-2023  润新知