• MemCache缓存multiget hole详解


      multiget 是什么

      multiget 指的是从 memcache(或其他分布式缓存) 一次性获得多个键值,一般由 memcached client 自行实现。

      multiget hole是什么

      该问题由 facebook 的工作人员提出的, facebook 2010 年左右,memcached 节点就已经达3000 .缓存数千 G 内容.他们发现了一个问题---memcached 连接频率,效率下降了,于是加 memcached 节点, 添加了后,发现因为连接频率导致的问题,仍然存在,并没有好转,称之为”multiget hole现象

      实例说明

      我们使用 Multiget 一次性获取100个键对应的数据。系统最初只有一台 Memcached 服务器,随着访问量的增加,系统负载捉襟见肘,于是我们又增加了一台 Memcached 服务器,数据散列到两台服务器上。开始那100个键在两台服务器上各有50个。问题就在这里:原本只要访问一台服务器就能获取的数据,现在要访问两台服务器才能获取;服务器加的越多,需要访问的服务器就越多,所以问题不会改善,甚至还会恶化。

      解决方法

      请求多台服务器并不是问题的症结,真正的原因在于客户端在请求多台服务器时是并行的还是串行的!问题是很多客户端,包括Libmemcached在内,在处理Multiget多服务器请求时,使用的是串行的方式!也就是说,先请求一台服务器,然后等待响应结果,接着请求另一台,结果导致客户端操作时间累加,请求堆积,性能下降。如何解决这个棘手的问题呢?只要保证 Multiget 中的键只出现在一台服务器上即可!

      把某一组 key,按其共同前缀,来分布.比如 user-133-age, user-133-name,user-133-height 3 key,在用分布式算法求其节点时,应该以 ‘user-133’来计算,而不是以 user-133-age/name/height 来计算.这样,3 个关于个人信息的 key,都落在同 1 个节点上,访问个人主页时,只需要连接 1 个节点。

    原文链接:http://www.maiziedu.com/wiki/memcache/multiget/

  • 相关阅读:
    [android开放篇] wifi-direct接口网址
    [adb 连接不上的原因] 汇总
    SharePoint 2010 master page 控件介绍(1)
    Sharepoint 2010 根据用户权限隐藏Ribbon菜单
    How to: Hide the Ribbon in SharePoint 2010
    sharepoint2010网站根据权限隐藏ribbon
    SharePoint 2010 master page 控件介绍(2):ribbon (一同事读听着像泪奔)
    SharePoint 2010 Ribbon的实现
    为SharePoint网站创建自定义导航菜单
    Sharepoint 2010 用VS定制Master,并且每个Web应用同一个Master
  • 原文地址:https://www.cnblogs.com/space007/p/6150775.html
Copyright © 2020-2023  润新知