Linux 下 Redis 安装教程
Linux 下 Redis 安裝教程
- 事先準備
- 下載 Redis
- 安裝 Redis
- 設置 Redis 開機自啟動
- 遠程訪問 Redis
- RDM 遠程訪問 Redis
筆者的運行環境:
-
CentOS Stream 8 x86_64
-
Redis 6.2.5
事先準備
進行這個教程之前,必須要先安裝好一個 Linux 操作系統。這個 Linux 操作系統可以安裝在虛擬機中,也可以安裝在真實的電腦中。關于這方面的內容,可見筆者的其它博客:
VMware Workstation Pro 16 安裝教程:
https://blog.csdn.net/wangpaiblog/article/details/112152218
Linux 操作系統 CentOS Stream 安裝教程:
https://blog.csdn.net/wangpaiblog/article/details/119792728
為了方便遠程輸入命令、將文件加入到 Linux 操作系統中,最好還要在一臺 Windows 操作系統上面使用一種終端控制軟件,如 Xshell、Xftp 等。關于這方面的內容,可見筆者的另一篇博客:
如何在 Windows 主機上訪問本地局域網中的 Linux 主機:
https://blog.csdn.net/wangpaiblog/article/details/120052152
一般來說,安裝一個軟件有 3 種方法:離線安裝、在線安裝、免安裝。通常,離線安裝是最好的方法,同時也通常是筆者的首選,但本文使用的是免安裝方法。原因是,在 Redis 的官網中就只給出了這一種文件包。
下載 Redis
打開 Redis 官網,找到 Redis 的最新穩定版來下載。在筆者編寫本博客時,Redis 的最新穩定版為 6.2.5。具體的流程如下面的圖片所示。
Redis 的官網是:https://redis.io/
Redis 下載處的最終網址:
-
https://redis.io/download
-
http://download.redis.io/releases/
下載完成之后,會得到約為 2.5M 的文件 redis-6.2.5.tar.gz。這個大小看起來像下載的是一種在線安裝包。但是沒錯!這就是 Redis 的離線免安裝包。一般來說,對于 Red Hat 操作系統,在線安裝包會以 rpm 為后綴,離線安裝包會以 rpm(單安裝包)或 tar(多依賴安裝包)為后綴,而免安裝包則為雙后綴 .tar.gz。
安裝 Redis
先不要急著安裝 Redis。Redis 是用 C 語言編寫的,碰巧 Linux 也幾乎如此。而 Redis 的安裝需要借助 GCC 進行編譯,而 Linux 上可能已經安裝了 GCC 了。對于 Redis 6 以上,GCC 的版本要在 5.3 以上。所以需要先檢查 Linux 中 GCC 的版本。
輸入如下命令查看 Linux 中 GCC 的版本:
gcc --version[root@localhost Redis 安裝包]# gcc --version gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-3) Copyright ? 2018 Free Software Foundation, Inc. 本程序是自由軟件;請參看源代碼的版權聲明。本軟件沒有任何擔保; 包括沒有適銷性和某一專用目的下的適用性擔保。
可以看出,筆者的操作系統的 GCC 版本為 8.5.0,符合要求。如果讀者的不符要求,可以依次輸入以下命令安裝較高版本的 GCC:
yum -y install centos-release-sclyum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
將下載完的 .tar.gz 包通過 xftp 傳入 Linux 中。
使用如下命令進入目錄 Redis 壓縮包所在目錄:(下面的 Redis 壓縮包所在目錄 要改成實際的目錄)
cd Redis 壓縮包所在目錄使用如下命令解壓 gz 包:
tar -xzvf redis-6.2.5.tar.gz使用如下命令進入解壓后的目錄:
cd redis-6.2.5解壓后的目錄中有兩個重要的文件。這兩個文件請務必記住,下面將用到。
- redis.conf。此文件是 Redis 啟動必需的一個配置文件。
- utils/redis_init_script。此文件是 Redis 的啟動、中止腳本。
依次輸入如下命令安裝 Redis:
makemake install PREFIX=/usr/local/redis
上述命令將會在目錄 /usr/local/redis/bin 中生成 Redis 的可執行文件。此目錄請務必記住,下面將用到。
在 Linux 中設置 Redis 的環境變量。
一個偷懶的方法是將環境變量添加在文件 /etc/profile 中。之所以說偷懶,是因為一旦升級或重裝了 Linux 操作系統,這個文件就會被重置。
最好的方法是將自設的環境變量放到 $HOME/ 下的前綴為 .bash 的一系列文件中。不過筆者有時也偷懶。
在 Linux 中設置 Redis 的環境變量偷懶方法:
在文件 /etc/profile 尾追加以下內容:(注意:修改前最好先備份,以免發生誤修改)
export PATH=$PATH:/usr/local/redis/bin在文件 /etc/profile 中追加路徑正是上面生成的 Redis 的可執行文件的路徑。
現在需要驗證一下環境變量有沒有設置成功,但先不要著急驗證,因為文件 /etc/profile 在 Linux 啟動時才會被讀取。可以使用以下方法來使環境變量生效。
-
使用命令 source:
source /etc/profile
-
重啟。重啟的方法有很多,也可以使用命令 reboot。
驗證環境變量。這種方法有很多,只舉幾例。
-
輸入以下命令。如果輸出了前面的設置,說明前面的環境變量設置成功。
echo $PATH
-
輸入以下命令。如果輸出了相應的路徑(就是前面生成的 Redis 的可執行文件的路徑),說明前面的環境變量設置成功。
which redis-cli
[root@localhost ~]# which redis-cli /usr/local/redis/bin/redis-cli
將上面提到的文件 redis.conf 復制到 Redis 的相關目錄中,這里設為 /usr/local/redis/conf。
mkdir -p /usr/local/redis/confcp redis.conf /usr/local/redis/conf
設置 Redis 開機自啟動
修改剛剛復制后的文件 /usr/local/redis/conf/redis.conf。將該文件中的 daemonize no 改為 daemonize yes。這是為了將 Redis 作為守護進程來運行,便于開機啟動。
將上面提到的文件 utils/redis_init_script 復制到 Linux 的啟動目錄 init.d 中,并重命名為 redis。然后對其添加執行權限。
cp utils/redis_init_script /etc/init.d/redischmod +x /etc/rc.d/init.d/redis
修改剛剛復制后的文件 /etc/rc.d/init.d/redis。這需要改動 3 處。之所以這樣改動,是因為這些目錄中涉及前面生成的 Redis 的可執行文件以及文件 redis.conf。
(注意:EXEC、CLIEXEC 的路徑是沒有引號的,CONF 的路徑是有引號的。)
- EXEC:將 EXEC 行的路徑改為 /usr/local/redis/bin/redis-server。
- CLIEXEC:將 CLIEXEC 行的路徑改為 /usr/local/redis/bin/redis-cli。
- CONF:將 CONF 行的路徑改為 "/usr/local/redis/conf/redis.conf"。
設置 Redis 開機自啟動。
chkconfig redis on輸入以下命令驗證是否成功設置了 Redis 開機自啟動:
chkconfig --list如果輸出結果含 redis,且 3、4、5 值均為開,說明設置成功。輸出如下所示:
redis 0:關 1:關 2:開 3:開 4:開 5:開 6:關
重啟電腦試一下是否真正成功。重啟后,馬上輸入以下命令:
netstat -na | grep 6379[root@localhost ~]# netstat -na | grep 6379 tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN tcp6 0 0 ::1:6379 :::* LISTEN
如果輸出了端口 6379 被使用的信息,說明 Redis 開機自啟動成功。
遠程訪問 Redis
Linux 通常作為服務器操作系統,一般希望能使用遠程使用 Redis。不過,Linux 上有防火墻,默認會阻止遠程對 Redis 的連接。實際上,它會阻止所有的遠程連接。對于筆者的 CentOS Stream 8 x86_64,默認的防火墻為 firewalld,而不是 iptables。(很多人會選擇安裝 iptables,但偷懶的筆者當時沒有選擇這樣做。)
-
一個偷懶的方法就是,永久地關閉防火墻。關閉的方法如下:
systemctl stop firewalld
systemctl mask firewalld
firewall-cmd --reload
-
另一個方法是,在防火墻中永久開放 MySQL 的默認端口 6379。開放的方法如下:
firewall-cmd --zone=public --add-port=6379/tcp --permanent
firewall-cmd --reload
單獨開放完端口 6379 之后,可以輸入以下命令查看是否生效:
firewall-cmd --zone=public --query-port=6379/tcp
[root@localhost temp]# firewall-cmd --zone=public --query-port=6379/tcp yes實際上,也可以輸入以下命令查看所有開放的端口:
firewall-cmd --zone=public --list-ports
[root@localhost temp]# firewall-cmd --zone=public --list-ports 6379/tcp
對于常規的軟件,一般這樣設置就可以了,但作為數據庫的 Redis 還要求進行額外設置。
打開前面提到的文件 /usr/local/redis/conf/redis.conf,將其中的 protected-mode 的值改為 no。
繼續修改此文件 redis.conf。將其中沒有被注釋掉的 bind 127.0.0.1 那行注釋掉。將 bind 全部注釋掉之后就會開放所有的客戶端連接。當然,為了安全,最好是選擇開放指定的與 Redis 綁定的客戶端,但偷懶的筆者沒有當時選擇這樣做。
【注意】
??bind 是用于指定與 Redis 綁定的客戶端 IP,也就是運行本 Redis 的主機 IP。如果設置了此項,其它主機就可以通過本機 IP 來遠程訪問本機的 Redis 服務。也就是說,bind 只是用于指定與本機 Redis 通信時,可用的 IP 目的地址,而不是 IP 源地址(即不是指定哪些外界 IP 可以訪問本機的 Redis)
重啟 Redis 來使上述配置生效。可以依次使用終止、啟動 Redis 來實現重啟。
【附】
- Redis 的手動啟動命令是:service redis start
- Redis 的手動終止命令是:service redis stop
現在可以嘗試遠程訪問 Redis。可以在本地客戶端輸入以下命令來驗證:
ssh -v -p 6379 192.168.0.100以筆者在 Windows 的 CMD 中,訪問 Linux 的端口號 6379 為例。
如果訪問成功,輸出信息為:
C:\Users\XXX>ssh -v -p 6379 192.168.0.100 OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5 debug1: Connecting to 192.168.0.100 [192.168.0.100] port 6379. debug1: Connection established. debug1: identity file C:\\Users\\XXX/.ssh/id_rsa type 0 debug1: key_load_public: No such file or directory debug1: identity file C:\\Users\\XXX/.ssh/id_rsa-cert type -1 debug1: key_load_public: No such file or directory debug1: identity file C:\\Users\\XXX/.ssh/id_dsa type -1 debug1: key_load_public: No such file or directory debug1: identity file C:\\Users\\XXX/.ssh/id_dsa-cert type -1 debug1: key_load_public: No such file or directory debug1: identity file C:\\Users\\XXX/.ssh/id_ecdsa type -1 debug1: key_load_public: No such file or directory debug1: identity file C:\\Users\\XXX/.ssh/id_ecdsa-cert type -1 debug1: key_load_public: No such file or directory debug1: identity file C:\\Users\\XXX/.ssh/id_ed25519 type -1 debug1: key_load_public: No such file or directory debug1: identity file C:\\Users\\XXX/.ssh/id_ed25519-cert type -1 debug1: key_load_public: No such file or directory debug1: identity file C:\\Users\\XXX/.ssh/id_xmss type -1 debug1: key_load_public: No such file or directory debug1: identity file C:\\Users\\XXX/.ssh/id_xmss-cert type -1 debug1: Local version string SSH-2.0-OpenSSH_for_Windows_7.7 debug1: ssh_exchange_identification: -ERR unknown command `SSH-2.0-OpenSSH_for_Windows_7.7`, with args beginning with:如果訪問不成功,輸出信息為:
C:\Users\XXX>ssh -v -p 6379 192.168.0.100 OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5 debug1: Connecting to 192.168.0.100 [192.168.0.100] port 6379. debug1: connect to address 192.168.0.100 port 6379: Connection refused ssh: connect to host 192.168.0.100 port 6379: Connection refusedRDM 遠程訪問 Redis
和其它數據庫一樣,Redis 也有自己的 GUI 軟件 Redis Desktop Manager(簡稱 RDM)。很遺憾也很奇怪的是,該軟件現在下載不是免費的,但卻是開源的。開源意味著可以使用開發工具來生成該軟件的安裝包。也許開發者們曾經也在開源與收費中徘徊。
RDM 官網:https://rdm.dev/
RDM 開源地址: https://github.com/uglide/RedisDesktopManager
(筆者不打算讓簡單問題復雜化,去教讀者如何生成 RDM 的安裝包,這需要下載 VS 、Qt。但筆者在編寫本教程時已經有了安裝包了。)
打開軟件,建立連接。
按下圖填寫信息,先測試連接是否可用。如果連接過程中,出現了無響應的狀態,這是正常現象,耐心等待即可。
如果連接可用,就可以建立連接了。
總結
以上是生活随笔為你收集整理的Linux 下 Redis 安装教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在 IntelliJ IDEA 中,如何
- 下一篇: Linux 下 GitLab 安装教程