将数据从一台memcached服务器传输到另一台memcached服务器
目前我们正在将我们的用户会话存储在memcached中,我们的Web应用程序使用PHP 5.3.6和Apache 2.2.3运行。将数据从一台memcached服务器传输到另一台memcached服务器
我们将更换我们的memcached服务器,我想知道是否有办法将数据从一台memcached服务器传输到另一台服务器,以便用户会话仍在那里。 (尽量减少停机时间)
虽然我已阅读FAQ http://code.google.com/p/memcached/wiki/FAQ#How_can_you_dump_data_from_or_load_data_into_memcached?这可能无法做到这一点...但我希望如果有人有一些工具或解决方法来实现这一点。
谢谢!
问候
你最好的选择是可能添加一些代码到你的系统中,当用户访问,写会话到两个新服务器和旧的,然后让他们在并行的运行一会儿,然后关掉旧的服务器。这样,您就可以“热身”新服务器而不需要实际依赖它,然后在大部分会话被移动完之后进行交换。
你仍然会失去一些会话,但最常见的访问者不会注意到任何事情,因为他们的会话将被移动。
谢谢琥珀,是一个很好的建议。但我怀疑我们能够调整我们的代码在这一点上来实现这一点 – forestclown
然后,可能只是需要将其交换出去Memcache并非设计为持久存储 - 最好设计您的网站,以便处理丢失memcache的内容(或者,如果没有,则运行多机器memcache群集这样你就可以在不丢失整个集群的情况下旋转单个服务器) – Amber
你可能想要查看tcpcopy(http://code.google.com/p/tcpcopy/)它可以让你分割一个tcp流到新的和旧的memcached服务器 – mikewied
memcached工具是可能的。
memcached-tool 10.1.2.30:11211 dump | nc 127.0.0.1 11211
如果你需要找到它,memcached工具可以在Debian的'/ usr/share/memcached/scripts'找到。 – phirschybar
我写了一些sc ripts使用systemd在启动时自动执行此过程。 https://github.com/ticpu/tools/tree/master/memcached-replicate – TiCPU
这工作,我成功地将我的memcache数据移动到一个新的服务器没有任何问题。 – rayhan
为什么这么多downvotes? –
:(不知道是否我发布了这个错误的部分? – forestclown
+1好问题 – servermanfail