在windows上部署使用Redis
這兩天在重新做公司內網首頁,信息都是從別的系統獲取的,產品原來打算直接上靜態頁,jsonp異步取數據。但是一來jsonp比較坑(一直不喜歡),二來整個頁面的數據都異步獲取的話,剛剛打開頁面的時候會空白一片,體驗極其差。所以決定用node.js + express + redis簡單搞下。今天早晨一直在折騰Redis,看了挺多文章,可能是版本或者其他的原因,我遇到的問題他們都沒有提,不過終於還是部署上了,下面把過程寫下給大家參考。
下載Redis
在Redis的官網下載頁上有各種各樣的版本,我這次是在windows上部署的,要去GitHub上下載。目前的是2.8.12版的,直接解壓,在\bin\release
啟動Redis(以下命令均在dos命令行下執行,不是在Redis客戶端)
直接在上圖的目錄打開命令窗口,運行:
- redis-server redis.windows.conf
結果就悲劇了,提示:QForkMasterInit: system error caught. error code=0x000005af, message=VirtualAllocEx failed.: unknown error
。原因是內存分配的問題(如果你的電腦夠強悍,可能不會出問題)。解決方法有兩個,第一:啟動的時候使用--maxmemory
命令限制Redis的內存:
- redis-server redis.windows.conf --maxmemory 200m
第二種方法就是修改配置文件redis.windows.conf
:
- maxmemory 209715200
註意單位是字節,改完後如下:
之後再運行redis-server redis.windows.conf
就可以啟動了:
但是問題又來了,關閉cmd窗口就會關閉Redis,難道服務器上要一直開著嗎?這顯然是不科學的,下面看怎麽在服務器上部署。
部署Redis
其實Redis是可以安裝成windows服務的,開機自啟動,命令如下:
- redis-server --service-install redis.windows.conf
安裝完之後,就可看到Redis已經作為windows服務了:
但是安裝好之後,Redis並沒有啟動,啟動命令如下:
- redis-server --service-start
停止命令:
- redis-server --service-stop
還可以安裝多個實例
- redis-server --service-install –service-name redisService1 –port 10001
- redis-server --service-start –service-name redisService1
- redis-server --service-install –service-name redisService2 –port 10002
- redis-server --service-start –service-name redisService2
- redis-server --service-install –service-name redisService3 –port 10003
- redis-server --service-start –service-name redisService3
卸載命令:
- redis-server --service-uninstall
最後提示一下:2.8版本的不支持32位系統,32位系統要去下載2.6版本的。2.6版本的無法像上面一樣方便的部署,它提供一個叫RedisWatcher的程序來運行redis server,Redis停止後會自動重啟。
另外推薦一個Redis可視化管理工具:Redis Desktop Manager,官網的下載地址被墻了,可以在我的網盤下載 v0.7.6版,放個截圖:
在windows上部署使用Redis