Cygwin工具編譯Redis
Redis6.x版本是未編譯版本(官方很調皮,所以沒辦法,我們只好幫他們編譯一下了),所以我們們先下載一個Cygwin,用它來對Redis進行編譯。
Cygwin下載地址:
https://cygwin.com/setup-x86_64.exe
下面是安裝Cywin的一些注意事項說明:
1、前面可以自己預設或者自由選擇,到達下圖所示內容以後,新增阿里雲映象。不然可能會下載失敗。
阿里雲映象地址:
http://mirrors.aliyun.com/cygwin/
2、到達下面頁面時候,需要搜尋並新增以下五個命令工具,因為下載的6.x版本的redis是未編譯的程式碼,所以需要用這些工具提供的一些命令來編譯Redis使用。命令工具包括:
make
gcc-core
gcc-g++
libgcc1
libgccpp1
新增方法如圖所示:
新增完成以後,在下一步的預覽頁面,就可以看見我們新增的工具都包含在裡面了:
然後會開始下載,如下圖所示。
安裝完成以後,執行Cygin,會在安裝目錄下的home資料夾下,生成一個當前使用者名稱的資料夾:
現在,去到Redis官網下載Redis壓縮包。當前我使用的最新的穩定版本是6.2.5(當前日期是2021-07-25)。下載地址是:
下載以後,把它丟到剛剛的Home目錄下的使用者名稱資料夾下:
在gywin介面上面檢視,可以看見就這麼個檔案。
先解壓。命令: tar -zxvf 你的redis資料夾壓縮包:
解壓以後,有興趣的還可以進去解壓資料夾下面瞅瞅,例如src下面,可以看見這傢伙幾乎一堆.h和.c的檔案,說明這傢伙太調皮了,寫完程式碼都不編譯,壞得很。.h和.c檔案,是C語言的頭部檔案,以及C語言的程式碼檔案,有興趣的小夥伴也可以看原始碼學習學習,也許有什麼新發現。
返回上級目錄 xxx/redis-xxx,並且使用make命令。Duang,開始編譯……
似乎預感到不對……時間一秒一秒過去,終於熬到了最後,what the fuck~~報錯了:
算了,作為一個成年人,一條路走不通,我們走第二條路,換個Redis版本。可能是版本太新了,假裝是它自己的問題,我們下個低一點的版本吧。這次換成了6.0.15:
以上的操作重新走一個,解壓,cd到解壓的目錄下,以及make三連擊:
Make~ 開始進入漫長的編譯等待中……
直到最後,編譯完成~~想必是我的真誠感動了這個版本的Redis,所以終於編譯成功了:
在SRC目錄下,會生成很多檔案,我們們把生成的檔案(除去.o檔案、.d檔案以及原本存在的.c和.h檔案外,其他的都拷貝走),複製一份到自定義的某個地方,例如 C:/Redis :
把Cygwin/bin下面的 cygwin1.dll也拷貝到上面的資料夾下:
將Redis解壓後的redis.conf配置檔案,也拷貝過去。於是最終的檔案包括以下這些:
啟動Redis並測試
使用管理員許可權開啟CMD命令視窗,進入到redis下,直接執行 redis-server.exe
以上,代表redis執行成功了。現在做個簡單測試,保持該視窗開啟狀態,繼續開啟一個新的cmd視窗,輸入命令 redis-cli.exe -h 127.0.0.1 -p 6379
然後通過 set 和 get命令,檢測結果。
現在開啟Redis管理工具,看看是否可以連線上Redis:
由於沒有設定密碼,所以可以直接測試通過,並且可以看見上面我們們用命令設定的一個name的值:
修改redis密碼
在redis.conf配置資料夾下,找到requirepass,去掉註釋,並且設定自己的密碼,例如我這邊設定的密碼是 wesky.123
預設情況下,redis配置檔案裡面只設定了本地訪問許可權,把 bind 127.0.0.1前面加個註釋,即可實現遠端訪問。或者把127.0.0.1改為 0.0.0.0也是OK的。或者設定為多個ip,這樣安全性高一點。我喜歡偷懶,就直接註釋掉吧:
設定允許啟用守護程式(後臺執行的意思)。將daemonize設定為yes
將Redis配置為windows服務
新增上面redis的資料夾路徑到環境變數的path裡面:
先退出上面的redis。同時,退出以後,redis客戶端就無法連線上了。所以為了將來不需要每次都手動啟動redis,我們接下來把redis新增到Windows服務上。
以上版本經過一番折騰,目前無法部署到Windows服務上,所以順手再降低了版本,用了5.0.10版本。放棄治療了……如果其他大佬繼續後續操作沒有異常,那就是我姿勢不對,歡迎指導。
使用管理員許可權開啟paoweshell(或者管理員許可權開啟cmd也是OK的),在redis目錄下使用命令:
redis-server.exe --service-install redis.windows.conf(以自己具體的配置檔名稱為準)
提示成功,轉到Windows服務上面,進行啟動redis服務:
Redis 6.x 看來暫時跟我無緣了,只能5.x暫時續一下命了。悲痛欲絕~~也可能姿勢不對,歡迎大佬們提供建議。
現在驗證下是不是可以用了。在客戶端上面加一個key-value
在後端通過get命令獲取:
尷尬,雷猴啊被解析成其他格式的了。
換個姿勢驗證下,設定一個新的key和value,並檢視:
以上,bingo~~
歡迎各位大佬觀看,如果有需要白嫖我上面已經弄好的redis 5.x 版本,可以加Q群獲取。