内存作为统一存储实践——尹伟铭+:豆瓣资深研发工程师_IT168文库.pdf

内存作为统一存储实践——尹伟铭+:豆瓣资深研发工程师_IT168文库.pdf

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
内存作为统一存储实践——尹伟铭:豆瓣资深研发工程师_IT168文库

内存作为统一存储实践 @尹伟铭 案例:微博系统 ● 拉模式的user_timeline ● 查询出关注的人的列表 SELECT id FROM following WHERE follower_id=$UID ● 根据关注的人查询出微博列表 SELECT * FROM weibo WHERE user_id IN $FOLLOWING_LIST ORDER BY created_at LIMIT 0, 20; 案例:数据更新 ● 关注很多人 ● 每个被关注的人说话都会引起数据更新 ● 收听的队列总是无法稳定 案例:微博系统 ● 推模式的user_timeline ● 查询出关注的人的列表 SELECT id FROM following WHERE follower_id=$UID ● 根据关注的人更新收听微博列表 INSERT INTO liestening (user_id, follower_id, weibo_id, created_at) VALUE($UID, $FOLLOWER_ID, $WEIBO_ID, $CREATED_AT) 案例:数据更新 ● 大V ● 每句话都会引起千万级的数据队列更新 ● 更新延时容易导致时序问题 利用缓存 ● 如何缓存 ● 存储关注的人列表? ● 存储user_timeline ? 利用缓存 ● 遇到数据更新 ● 数据频繁更新 ● 缓存命中率极低 缓存的特点 ● 高速交换数据 ● 只存储少部分数据 ● 数据更新往往采取废弃重读方式 ● 随机IO 案例:解决办法 ● 存储业务结构在内存中 ● uid - [weibo, weibo, ] ● 数据更新 ● 寻找需要更新的用户列表 ● uid - [$NEW_WEIBO, weibo, weibo, ...] 存储的特点 ● 长期的持续化存储 ● 数据有具体的更新方式 ● 存储结构化数据,如RDBMS ● 连续IO 使用内存 ● 速度对比 CPU 1 内存 10 硬盘 1,000 使用内存的优点 ● 随机访问速度快 ● 扩展方便 ● 灵活的数据模型 使用内存的限制 ● 空间小 ● 无法存储全部数据 ● 宕机数据丢失 ● 运维难度增加 使用内存作为存储 ● 命中率 ● 非命中情况要构建完整的业务相关数据结构 ● 数据填充 ● 避免雪崩 内存数据的更新 ● 构建业务相关的数据结构 ● 减少对象关系映射 ● 在内存中直接进行数据操作 构建二级存储 ● 哪些放入内存 ● 热数据监控 ● 区分缓存和存储 ● 应用程序 ● 构建内存存储数据结构

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档