缓存刷新时间集中问题

  1. 某个缓存失效了,导致其他节点的缓存命中率下降, 缓存中缺失的数据 去数据库查询.短时间内,会造成数据库服务器崩溃
  2. 需要将缓存失效时间离散分布在访问量比较低的时间段

multiget-hole问题

  • 以用户为例: user-133-age, user-133-name,user-133-height .....N 个 key, 当服务器增多,133 号用户的信息,也被散落在更多的节点, 所以,同样是访问个人主页,得到相同的个人信息, 节点越多,要连接的节点也越多. 对于 memcached 的连接数,并没有随着节点的增多,而降低
  • 把某一组 key,按其共同前缀,来分布.

    比如 user-133-age, user-133-name,user-133-height 这 3 个 key, 在用分布式算法求其节点时,应该以 ‘user-133’来计算,而不是以 user-133-age/name/height 来 计算.

    这样,3 个关于个人信息的 key,都落在同 1 个节点上,访问个人主页时,只需要连接 1 个节点.

永久数据被踢出

  • 引起原因:惰性删除和LRU算法最近最少使用记录删除
  1. 如果 slab 里的很多 chunk,已经过期,但过期后没有被 get 过, 系统不知他们已经过期.
  2. 永久数据很久没 get 了,不活跃,如果新增 item,则永久数据被踢了.
  3. 当然,如果那些非永久数据被 get,也会被标识为 expire,从而不会再踢掉永久数据
  • 解决方案:永久数据和非永久数据分开放

宕机或停服,缓存恢复问题

  • 由于memcached不支持缓存的持久化,所以解决不了停服上线或者大面积宕机时,恢复缓存将是一个痛苦而长久的问题
  • 解决方案:可以采用redis来替代

最新文章

  1. 1 Maximum Product Subarray_Leetcode
  2. cocospods 最新安装教程
  3. Mono.Cecil 初探(一):实现AOP
  4. in_array,array_search的使用
  5. Linux下安装mongodb详细过程
  6. 我这样理解js里的this
  7. xml Schema import
  8. tomcat bug之部署应用的时候经常会发上startup failed due to previous errors
  9. C/C++的编译器|编译环境(非常全面的比较)
  10. C#虚方法和覆写方法
  11. 初识NoSQL 快速认识NoSQL数据库 分析Analytics For Hackers: How To Think About Event Data
  12. C++ 操作法重载
  13. 运维角度浅谈MySQL数据库优化(转)
  14. 使用skin++进行MFC界面美化范例
  15. 测试框架mochajs详解
  16. Swift开发学习(两):Playground
  17. html meta标签使用及属性介绍
  18. Python迭代器详解
  19. 使用 nodeJs 开发微信公众号(设置自动回复消息)
  20. 【splunk】用正则表达式提取字段

热门文章

  1. java应用的jar包多合一
  2. Sublime Text 2 Plugin Installation
  3. SecureCRT连接本地的Vmware虚拟机(CentOS)时提示连接超时“Connection timed out”
  4. shell日志删除(超容量&自动)
  5. 房上的猫:StringBuffer类
  6. java多线程(二)-Runnable和Thread
  7. win10使用u盘装回win7
  8. this与base关键字
  9. Mongodb常规操作【一】
  10. react 开发知识准备