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