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策略变化,也不会导致用户被踢出
memcached迁移方案——记一次memcached session服务的迁移的更多相关文章
- PHP如何将session保存到memcached中?如何分布式保存PHP session
session_set_save_handler无关的memcached保存session的方法 在memcached服务器上 1)下载memcached #wget http://memcached ...
- Session服务器之Memcached与Redis
安装Memcached[root@nginx ~]# yum -y install libevent memcached 指定用户大小等信息,工作环境中常指定大小一般为4到8G,此信息测试使用.[ro ...
- 记一个由MemCached引发的性能问题
最近有个项目用loadrunner做了压力测试,发现并发量还不到200服务器就支撑不住了.boss那边紧急开会,说此项目最近3个月内将有100家中大型公司用于校园招聘工作,如果这个问题不解决公司有可能 ...
- Memcached下载安装、NET对Memcached进行CRUD操作(2)
Memcached概念.作用.运行原理.特性.不足简单梳理(1) Memcached下载安装.NET对Memcached进行CRUD操作(2) Memcached存Session数据.访问安全性.使用 ...
- Key/Value之王Memcached初探:一、掀起Memcached的盖头来
一.Memcached是何方神圣? 在数据驱动的Web开发中,经常要重复从数据库中取出相同的数据,这种重复极大的增加了数据库负载.缓存是解决这个问题的好办法.但是ASP.NET中的HttpRuntim ...
- 不同场景下 MySQL 的迁移方案
一 目录 一 目录 二 为什么要迁移 三 MySQL 迁移方案概览 四 MySQL 迁移实战 4.1 场景一 一主一从结构迁移从库 4.2 场景二 一主一从结构迁移指定库 4.3 场景三 一主一从结构 ...
- 【转】Key/Value之王Memcached初探:一、掀起Memcached的盖头来
一.Memcached是何方神圣? 在数据驱动的Web开发中,经常要重复从数据库中取出相同的数据,这种重复极大的增加了数据库负载.缓存是解决这个问题的好办法.但是ASP.NET中的HttpRuntim ...
- SQL Server 数据库最小宕机迁移方案
一.目的 在做SQL Server数据库维护的时候,当上司要求我们把几十G的数据文件搬动到其它服务器,并且要求最小宕机时间的时候,我们有没什么方案可以做到这些要求呢? 在这里我们假设这两台机器并不是在 ...
- (转)实战Memcached缓存系统(1)Memcached基础及示例程序
1.Cache定义 (1)狭义概念:用于CPU的相对高速处理与主存(Main Memory)的相对低速处理的之间起到协调功能的硬件设备. (2)广义概念:用于速度相差较大的两种硬件之间,起到协调两者数 ...
随机推荐
- 使用IDEA工具配置和运行vue项目(详细其中的坑)
刚来公司实习发现公司的前端使用的是vue,之前根本就没有听说过.然后一上来就需要看代码,but but 就是没有文档什么的东西, 就需要自己去研读,我就想去运行其中的前端和后端联调起来方便理解,结果在 ...
- ASP.NET MVC中你必须知道的13个扩展点
ScottGu在其最新的博文中推荐了Simone Chiaretta的文章13 ASP.NET MVC extensibility points you have to know,该文章为我 ...
- apicloud api.openwin
简单介绍api.openWin: 打开window 若window已存在,则会把该window显示到最前面,同时若url有变化或者reload参数为true时,页面会重新加载.若当前正在进行openW ...
- Implementation:Dijkstra
#include <iostream> #include <cstdlib> #include <utility> #include <queue> u ...
- gulpjs的使用介绍及技巧
gulpjs是一个前端构建工具,与gruntjs相比,gulpjs无需写一大堆繁杂的配置参数,API也非常简单,学习起来很容易,而且gulpjs使用的是nodejs中stream来读取和操作数据,其速 ...
- VMware安装vnwaretools
1. 在VMware Fusion 6.0.4下安装Ubuntu镜像:ubuntu-14.04.1-desktop-amd64.iso 2. 点击虚拟机菜单栏-安装VMware Tools 3. 进入 ...
- ArcGIS Server集群布署
ArcGIS Server集群布署 准备如下的4台机器: 计算机名 IP 布署软件 说明 VMWIN2008ENSS1 192.168.1.111 ArcGIS for Server VMWIN2 ...
- css文字飞入效果
一.页面的主体布局 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> & ...
- Android:Building " " Gradle project info 问题
Android Studio新建或者打开项目的时候,一直卡在Building "" Gradle project info 进度上不动,猜测是网络原因下载gradle不成功. 两种 ...
- 普通用户查看Oracle参数的值
create or replace function get_param(p_name in varchar2)return varchar2as l_param_type number; l_in ...