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

 

Cygwin工具編譯Redis

Redis6.x版本是未編譯版本(官方很調皮,所以沒辦法,咱只好幫他們編譯一下了),所以咱們先下載一個Cygwin,用它來對Redis進行編譯。

Cygwin下載地址:

//cygwin.com/setup-x86_64.exe

下面是安裝Cywin的一些注意事項說明:

1、前面可以自己默認或者自由選擇,到達下圖所示內容以後,添加阿里雲鏡像。不然可能會下載失敗。

 

阿里雲鏡像地址:

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

//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群獲取。

 

Tags: