記一次快取伺服器遷移史,心塞!

冰河團隊發表於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

以管理員身份執行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不太熟!這又說明了什麼問題呢?

小夥伴們還是要及時更新自己的技術棧啊!不然,受限於自己的技術棧,很多強大並且很牛逼的技術你都不會用。千萬不要把自己廢掉,不要向《程式設計師如何讓自己更快的廢掉?》中說的那樣~~

好了,今天就到這兒吧,我是冰河,大家有啥問題可以在下方留言,也可以加我微信,一起交流技術,一起進階,一起牛逼~~

相關文章