zoukankan      html  css  js  c++  java
  • memcached经典问题和现象

    缓存刷新时间集中问题

    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来替代
  • 相关阅读:
    Educational Codeforces Round 92
    练习
    03 并查集(带权,分类) 树状数组 线段树
    02 动态规划 LIS LCS
    05 矩阵优化 (斜率优化等待补)
    01 STL 打表 二分查找
    AtCoder Beginner Contest 174
    Codeforces Round #660 (Div. 2)
    PCHMI工控组态开发视频教程
    分享一款免费的工控组态软件(PCHMI)
  • 原文地址:https://www.cnblogs.com/warking/p/6924463.html
Copyright © 2011-2022 走看看