zoukankan      html  css  js  c++  java
  • memcached迁移方案——记一次memcached session服务的迁移

    背景:

      (1)由于机房调整,需要迁移memcached;

      (2)需要在短期内迁移完成(一周以内);

      (3)该memcached 保存了用户的登录数据,非常重要,一旦出问题将导致大量的用户被踢出;

      (4)数据没有做持久化;

      (5)数据根据存储的key,hash 到 4台服务器的 16 个 memcached 实例上,需要迁移的服务器有两台,即8个 memcached 实例;

    memcached 迁移的技术方案:

      (1)针对小规模的key-value 存储,可以采用memdump 工具,对memcached 的全量key 进行导出。具体可以参考: http://www.cnblogs.com/shrewdlin/archive/2013/03/27/2985167.html

      (2)针对大规模的key-value 存储,在时间充裕的情况下,可以采用双写方案,待数据热起来以后,再作迁移,不过该方案有一定局限性,这是因为迁移的时候,可能导致原来的 hash 策略发生变化,即使做了双写,切换时,仍旧有很多 key 不能命中。

      (3)针对大规模的key-value 存储,在时间不充裕的情况下,需要想办法在短时间内获取一段时间内的 key,本文采用的就是这种方案。具体的步骤为:

    • 首先通过日志,获取半个月前(该时间可视具体情况而定)所有活跃用户的 session-key
    • 通过获取到的session-key 拿到所有对应的 value
    • 将活跃用户的 key-value 写入到新旧系统的各个实例中,这样即便是hash策略变化,也不会导致用户被踢出
  • 相关阅读:
    事件(三):事件对象
    事件(二):事件处理程序
    事件(一):事件流
    nginx里面的rewrite配置
    详解 CSS 居中布局技巧
    jQuery 效率提升建议
    web的攻击技术
    前端优化点总结
    深入理解递归和闭包
    创建对象
  • 原文地址:https://www.cnblogs.com/smallrookie/p/8073589.html
Copyright © 2011-2022 走看看