.net core工具元件系列之Redis—— 第一篇:Windows環境配置Redis(5.x以上版本)以及部署為Windows服務

WeskyNet發表於2021-07-25

 

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)。下載地址是:

https://download.redis.io/releases/redis-6.2.5.tar.gz?_ga=2.250097734.1518354412.1627182860-2006233948.1627182860

下載以後,把它丟到剛剛的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命令獲取:

 

 

尷尬,雷猴啊被解析成其他格式的了。

換個姿勢驗證下,設定一個新的keyvalue,並檢視:

 

 

以上,bingo~~

歡迎各位大佬觀看,如果有需要白嫖我上面已經弄好的redis 5.x 版本,可以加Q群獲取。

 

相關文章