摘要:
阅读历史/搜索历史 更新比较频繁 不在mysql中进行保存, 直接持久化到redis中, 丢失了也不太重要 点赞数/回复数 更新频繁 如果保存到mysql中, 就会大量的并发更新操作, 出现阻塞的情况 取消mysql的冗余字段, 直接在redis中进行持久化 如果保存在redis的数据对象中, 需要 阅读全文
摘要:
读缓存 先读取缓存中的数据, 没有才会读取数据库中的数据 解决数据库读取压力 方式 cache aside 具体读写操作交给应用完成 read through 具体读写操作交给缓存层完成, 即使后期修改存储方案, 业务代码不需要修改, 有利于项目的重构和架构升级 写缓存 先写入缓存, 再写入数据库 阅读全文
摘要:
缓存更新 问题 mysql和redis是两个独立的系统, 在并发环境下, 无法保证更新的一致性 解决办法 设计分布式锁(redis setnx)/使用消息队列串行处理 缺点 并发能力差 更新数据时, 先写入mysql, 再删除缓存 facebook 主要用于 数据对象 (更新少) 数据集合主要还是更 阅读全文
摘要:
缓存淘汰 (重点) LRU least recently use 优先淘汰最近没有使用的数据 LFU least frequently use 优先淘汰使用率最低的数据 采用了定期衰减的机制, 防止旧数据始终无法删除 缺点 需要每条数据维护一个使用计数 还需要定期衰减 面试问题 mysql中有100 阅读全文
摘要:
过期策略 作用 节省空间 实现数据的弱一致性 过期策略 定时过期 效率太低, 每个数据都需要设置定时器进行计数 惰性过期 查询时, 才去检查数据的有效期, 如果过期, 则返回nil, 并删除过期数据 定期过期 每隔100ms, 随机取出一部分数据进行过期校验, 如果过期, 删除数据 redis的选择 阅读全文
摘要:
缓存介绍 作用 减小数据库的访问压力, 提高并发能力 多级缓存 缓存粒度 缓存某个数值 一个键只保存一个值, 性价比较低, 使用率低 场景 验证码 缓存数据对象 数据库记录对应的具体数据 优点 可以多次复用 场景 用户/文章数据 缓存数据集合 数据库查询对应的结果集 场景 文章/关注列表 可以和数据 阅读全文
摘要:
CDN: 内容分发网络 面向数据: 静态资源 image/js/css/html 目的 依靠部署在各地的边缘服务器,通过中心平台的内容分发,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度 小公司 图片/js/css 使用OSS 静态网页 nginx 中 大公司 图片/js/css/静态网 阅读全文
摘要:
开源接口管理平台 YApi: 阅读全文
摘要:
七牛云介绍 项目初期, 数据量小的情况下, 一般会采用第三方的存储方案, 成本比较低, 而且也安全可靠 当数据量达到一定的规模, 第三方存储的费用超过自己搭建文件服务, 才会选择搭建自己文件服务系统 对象存储服务 OSS 使用细节 要求实名认证 创建存储空间 默认生成测试域名 有效期为一个月 要长期 阅读全文