轉載請註明文章出處: https://tlanyan.me/redis-on-w...
Redis
是一個高性能的內存型NoSQL數據庫,是服務端開發中經常使用的軟件。Redis
官方支持*nix、BSD等系統,沒有提供對Windows平臺的支持。Windows平臺上的Redis由微軟開發,但微軟目前暫停了對其的支持和維護。微軟Redis
的Github倉庫是 MicrosoftArchive/redis,最後發佈的版本是兩年前的3.2.100
。git
在網絡上搜索「redis windows」,無論新舊博文仍是教程,都指向了3.2.100
。軟件老舊沒問題,好用就行。但實踐證實在大數據量下(超過幾千個key),Windows上的3.2.100很快崩潰掉,出現以下錯誤提示:github
此時不關閉窗口,redis
依然能提供服務。當存放的數據量增加到幾萬,redis
會彈出第二個崩潰窗口,數據存取將不可用,完全的掛掉了。redis
根據拋出的異常信息找緣由和解決方案,在網絡上搜尋一圈也沒找到緣由和解決方式。有人在redis
官方倉庫裏提issue,官方說這是Windows平臺上的問題,請到微軟的倉庫裏提問題。但是微軟已經不在維護redis
,估計提問題的哥們也挺鬱悶。數據庫
沒找到解決辦法前只能忍:只要能持續提供服務,不理會報錯;若是真正掛掉了,就重啓。爲了及時處理故障,對平臺運行狀況做了監控,出現異常時立刻報警通知。windows
某天晚上準備睡覺,接到報警郵件,只好開電腦處理問題。沒想到半個小時後又報警,持續兩次後頓時有點火大,不解決redis
問題極可能就睡很差覺。想到以前在某個issue裏有人推薦過其餘人維護的版本,尋思能夠試試。翻看微軟redis
倉庫裏的issue,第二個即是。原來 tporadowski
維護了一個版本,而且支持到4.0(官方目前的穩定版)。可貴難得的是,tporadowski
還一直在維護更新,修復bug的同時與上游代碼同步。網絡
本想先測試一下再上線,又通過一次報警後決定立刻上線替換在用的3.2.100
版本。使用新版沒多久,看到出現"fork operation complete"和"background saving teminated with success"消息,頓時感受妥了(以前找「EXCEPTION_ACCESS_VIOLATION」時官方就提到過是Windows下fork出了問題)。事實代表這個版本的redis
很是的穩定,運行到現在,窗口的輸出信息所有正常,也沒有crash過,煩人的報警郵件也沒了。性能
若是你在Windows平臺上使用3.2.100
版本的redis
遇到問題,建議試試tporadowski
維護的版本,下載地址是: https://github.com/tporadowsk...。測試