写点什么

记一次缓存服务器迁移史,心塞!

用户头像
冰河
关注
发布于: 2021 年 01 月 10 日
记一次缓存服务器迁移史,心塞!

写在前面


下班后本来可以好好休息下,结果刚躺下,此时,叮铃铃电话响了。


“喂,你好!”。


“喂,冰河,睡了吗?我是 XXX,我现在遇到个问题,我想把缓存服务器从 CentOS 迁移到 Windows 上,还有就是我想使用 Memcached,你帮我弄下啊”。


“啥?为啥要弄到 Windows 上啊,为啥使用 Memcached 啊?Redis 不香吗?Redis 比 Memcached 强大的多啊!!”


“这我知道啊,但是我对 Linux 操作系统和 Redis 不太熟啊,我想迁移到 Memcached 上测试下啊!”。


“不太熟慢慢积累,慢慢学”。


“但是项目下周上线,我不太会啊,怎么办?你帮我弄下呗,项目先上线,以后我再慢慢学”。


我这人还是挺喜欢帮助别人的,于是乎,我冒着“严寒”起床帮他迁移缓存服务器了。


文章已收录到:


https://github.com/sunshinelyz/technology-binghe


https://gitee.com/binghe001/technology-binghe


什么是 Memcached


一句话,Memcached 是一个开源的,高性能,分布式的缓存系统,基于内存的 key-value 存储,用来存储小块的任意数据(字符串、对象)。


接下来,我们就来一起看看如何在 Windows 服务器上安装 Memcached 吧。


安装 Memcached


下载服务端 memcached 软件


32bit:下载 memcached-win32-1.4.4-14.zip(直接下)里面包含 6 个文件,将解压后的文件夹随便放在什么位置(例如:D:\memcached)。


memcached-win32-1.4.4-14.zip 下载页面:http://blog.couchbase.com/memcached-144-windows-32-bit-binary-now-available



64bit:如果需要 win64 版,下载 memcached-win64-1.4.4-14.zip(直接下),里面有个三个文件,用这三个文件覆盖 win32 下同名文件。


memcached-win64-1.4.4-14.zip 下载页面:http://blog.couchbase.com/memcached-windows-64-bit-pre-release-available [ ](http://blog.couchbase.com/memcached-windows-64-bit-pre-release-available)



以管理员身份运行 cmd.exe


以管理员身份运行 cmd.exe,并转至 memcached 所在文件夹


比如:


cd D:\memcached
复制代码


注意:如果不以管理员身份运行,将得到报错“failed to install service or service already installed”


安装 memcached


d:\memcached memcached.exe -d install
复制代码


之后屏幕无任何提示,可以再[控制面板]->[管理工具]->[服务]中查看到 memcached。



启动 memcached


启动方法 1:


d:\memcached> memcached.exe -d start
复制代码


之后屏幕无任何提示,但是在“任务管理器”中勾选“显示所有用户进程”,此时可以看到 memcached.exe 进程正在运行默认端口 11211,外部访问需要开放该端口,否则无法成功连接。


启动方法 2:


[控制面板]->[管理工具]->[服务] 找到 memcached 服务,双击它打开如下图



  • 启动类型:选择【自动】

  • 服务状态:点击下面的【启动】

  • 备注:可执行文件的路径和我上面所说的路径有些区别可以忽略


memcached 基本参数设置


  • -p 监听的端口

  • -l 连接的 IP 地址, 默认是本机

  • -d start 启动 memcached 服务

  • -d restart 重起 memcached 服务

  • -d stop|shutdown 关闭正在运行的 memcached 服务

  • -d install 安装 memcached 服务

  • -d uninstall 卸载 memcached 服务

  • -u 以的身份运行 (仅在以 root 运行的时候有效)

  • -m 最大内存使用,单位 MB。默认 64MB

  • -M 内存耗尽时返回错误,而不是删除项

  • -c 最大同时连接数,默认是 1024

  • -f 块大小增长因子,默认是 1.25

  • -n 最小分配空间,key+value+flags 默认是 48

  • -h 显示帮助


设置参数时需要先停止 memcached,然后用命令行设置,比如:


 D:\memcached> memcached.exe -m 1 -d start
复制代码


停止 memcached


D:\memcached> memcached.exe -d stop
复制代码


卸载 memcached


D:\memcached> memcached.exe -d uninstall
复制代码


修改参数


windows 下需要通过修改注册表信息进行设置,打开注册表,找


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\memcached 
复制代码


在其中有一个“ImagePath”项,值为:


"D:\memcached\memcached.exe" -d runservice 
复制代码


在后面加上“-m 1024 -c 2048 -p 11210”。等即可。重启服务后生效



安装完 Memcached,后续把缓存数据从 Redis 迁移到 Memcached,并且把项目中连接 Redis 的信息修改为连接 Memcached 即可。


附加安装包


大家可到链接http://download.csdn.net/detail/l1028386804/9777810下载 Memcached 安装包。


总结


本次迁移缓存服务器其实挺心塞的,不是技术问题,而是小伙伴的技术栈问题,明明 Linux+Redis 无论是性能、持久化还是并发方面都胜于 Windows+Memcached,可为什么还要用 Windows+Memcached 呢?原因就是对 Linux+Redis 不太熟!这又说明了什么问题呢?


小伙伴们还是要及时更新自己的技术栈啊!不然,受限于自己的技术栈,很多强大并且很牛逼的技术你都不会用。千万不要把自己废掉,不要向《程序员如何让自己更快的废掉?》中说的那样~~


好了,今天就到这儿吧,我是冰河,大家有啥问题可以在下方留言,也可以加我微信,一起交流技术,一起进阶,一起牛逼~~


发布于: 2021 年 01 月 10 日阅读数: 10
用户头像

冰河

关注

公众号:冰河技术 2020.05.29 加入

Mykit系列开源框架发起者、核心架构师和开发者,《海量数据处理与大数据技术实战》与《MySQL开发、优化与运维实战》作者。【冰河技术】微信公众号作者。

评论

发布
暂无评论
记一次缓存服务器迁移史,心塞!