Linux 下 Redis 安装教程
Linux 下 Redis 安裝教程
- 事先準備
- 下載 Redis
- 安裝 Redis
- 設(shè)置 Redis 開機自啟動
- 遠程訪問 Redis
- RDM 遠程訪問 Redis
筆者的運行環(huán)境:
-
CentOS Stream 8 x86_64
-
Redis 6.2.5
事先準備
進行這個教程之前,必須要先安裝好一個 Linux 操作系統(tǒng)。這個 Linux 操作系統(tǒng)可以安裝在虛擬機中,也可以安裝在真實的電腦中。關(guān)于這方面的內(nèi)容,可見筆者的其它博客:
VMware Workstation Pro 16 安裝教程:
https://blog.csdn.net/wangpaiblog/article/details/112152218
Linux 操作系統(tǒng) CentOS Stream 安裝教程:
https://blog.csdn.net/wangpaiblog/article/details/119792728
為了方便遠程輸入命令、將文件加入到 Linux 操作系統(tǒng)中,最好還要在一臺 Windows 操作系統(tǒng)上面使用一種終端控制軟件,如 Xshell、Xftp 等。關(guān)于這方面的內(nèi)容,可見筆者的另一篇博客:
如何在 Windows 主機上訪問本地局域網(wǎng)中的 Linux 主機:
https://blog.csdn.net/wangpaiblog/article/details/120052152
一般來說,安裝一個軟件有 3 種方法:離線安裝、在線安裝、免安裝。通常,離線安裝是最好的方法,同時也通常是筆者的首選,但本文使用的是免安裝方法。原因是,在 Redis 的官網(wǎng)中就只給出了這一種文件包。
下載 Redis
打開 Redis 官網(wǎng),找到 Redis 的最新穩(wěn)定版來下載。在筆者編寫本博客時,Redis 的最新穩(wěn)定版為 6.2.5。具體的流程如下面的圖片所示。
Redis 的官網(wǎng)是:https://redis.io/
Redis 下載處的最終網(wǎng)址:
-
https://redis.io/download
-
http://download.redis.io/releases/
下載完成之后,會得到約為 2.5M 的文件 redis-6.2.5.tar.gz。這個大小看起來像下載的是一種在線安裝包。但是沒錯!這就是 Redis 的離線免安裝包。一般來說,對于 Red Hat 操作系統(tǒng),在線安裝包會以 rpm 為后綴,離線安裝包會以 rpm(單安裝包)或 tar(多依賴安裝包)為后綴,而免安裝包則為雙后綴 .tar.gz。
安裝 Redis
先不要急著安裝 Redis。Redis 是用 C 語言編寫的,碰巧 Linux 也幾乎如此。而 Redis 的安裝需要借助 GCC 進行編譯,而 Linux 上可能已經(jīng)安裝了 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. 本程序是自由軟件;請參看源代碼的版權(quán)聲明。本軟件沒有任何擔保; 包括沒有適銷性和某一專用目的下的適用性擔保。
可以看出,筆者的操作系統(tǒng)的 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解壓后的目錄中有兩個重要的文件。這兩個文件請務(wù)必記住,下面將用到。
- redis.conf。此文件是 Redis 啟動必需的一個配置文件。
- utils/redis_init_script。此文件是 Redis 的啟動、中止腳本。
依次輸入如下命令安裝 Redis:
makemake install PREFIX=/usr/local/redis
上述命令將會在目錄 /usr/local/redis/bin 中生成 Redis 的可執(zhí)行文件。此目錄請務(wù)必記住,下面將用到。
在 Linux 中設(shè)置 Redis 的環(huán)境變量。
一個偷懶的方法是將環(huán)境變量添加在文件 /etc/profile 中。之所以說偷懶,是因為一旦升級或重裝了 Linux 操作系統(tǒng),這個文件就會被重置。
最好的方法是將自設(shè)的環(huán)境變量放到 $HOME/ 下的前綴為 .bash 的一系列文件中。不過筆者有時也偷懶。
在 Linux 中設(shè)置 Redis 的環(huán)境變量偷懶方法:
在文件 /etc/profile 尾追加以下內(nèi)容:(注意:修改前最好先備份,以免發(fā)生誤修改)
export PATH=$PATH:/usr/local/redis/bin在文件 /etc/profile 中追加路徑正是上面生成的 Redis 的可執(zhí)行文件的路徑。
現(xiàn)在需要驗證一下環(huán)境變量有沒有設(shè)置成功,但先不要著急驗證,因為文件 /etc/profile 在 Linux 啟動時才會被讀取。可以使用以下方法來使環(huán)境變量生效。
-
使用命令 source:
source /etc/profile
-
重啟。重啟的方法有很多,也可以使用命令 reboot。
驗證環(huán)境變量。這種方法有很多,只舉幾例。
-
輸入以下命令。如果輸出了前面的設(shè)置,說明前面的環(huán)境變量設(shè)置成功。
echo $PATH
-
輸入以下命令。如果輸出了相應(yīng)的路徑(就是前面生成的 Redis 的可執(zhí)行文件的路徑),說明前面的環(huán)境變量設(shè)置成功。
which redis-cli
[root@localhost ~]# which redis-cli /usr/local/redis/bin/redis-cli
將上面提到的文件 redis.conf 復(fù)制到 Redis 的相關(guān)目錄中,這里設(shè)為 /usr/local/redis/conf。
mkdir -p /usr/local/redis/confcp redis.conf /usr/local/redis/conf
設(shè)置 Redis 開機自啟動
修改剛剛復(fù)制后的文件 /usr/local/redis/conf/redis.conf。將該文件中的 daemonize no 改為 daemonize yes。這是為了將 Redis 作為守護進程來運行,便于開機啟動。
將上面提到的文件 utils/redis_init_script 復(fù)制到 Linux 的啟動目錄 init.d 中,并重命名為 redis。然后對其添加執(zhí)行權(quán)限。
cp utils/redis_init_script /etc/init.d/redischmod +x /etc/rc.d/init.d/redis
修改剛剛復(fù)制后的文件 /etc/rc.d/init.d/redis。這需要改動 3 處。之所以這樣改動,是因為這些目錄中涉及前面生成的 Redis 的可執(zhí)行文件以及文件 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"。
設(shè)置 Redis 開機自啟動。
chkconfig redis on輸入以下命令驗證是否成功設(shè)置了 Redis 開機自啟動:
chkconfig --list如果輸出結(jié)果含 redis,且 3、4、5 值均為開,說明設(shè)置成功。輸出如下所示:
redis 0:關(guān) 1:關(guān) 2:開 3:開 4:開 5:開 6:關(guān)
重啟電腦試一下是否真正成功。重啟后,馬上輸入以下命令:
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 通常作為服務(wù)器操作系統(tǒng),一般希望能使用遠程使用 Redis。不過,Linux 上有防火墻,默認會阻止遠程對 Redis 的連接。實際上,它會阻止所有的遠程連接。對于筆者的 CentOS Stream 8 x86_64,默認的防火墻為 firewalld,而不是 iptables。(很多人會選擇安裝 iptables,但偷懶的筆者當時沒有選擇這樣做。)
-
一個偷懶的方法就是,永久地關(guān)閉防火墻。關(guān)閉的方法如下:
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
對于常規(guī)的軟件,一般這樣設(shè)置就可以了,但作為數(shù)據(jù)庫的 Redis 還要求進行額外設(shè)置。
打開前面提到的文件 /usr/local/redis/conf/redis.conf,將其中的 protected-mode 的值改為 no。
繼續(xù)修改此文件 redis.conf。將其中沒有被注釋掉的 bind 127.0.0.1 那行注釋掉。將 bind 全部注釋掉之后就會開放所有的客戶端連接。當然,為了安全,最好是選擇開放指定的與 Redis 綁定的客戶端,但偷懶的筆者沒有當時選擇這樣做。
【注意】
??bind 是用于指定與 Redis 綁定的客戶端 IP,也就是運行本 Redis 的主機 IP。如果設(shè)置了此項,其它主機就可以通過本機 IP 來遠程訪問本機的 Redis 服務(wù)。也就是說,bind 只是用于指定與本機 Redis 通信時,可用的 IP 目的地址,而不是 IP 源地址(即不是指定哪些外界 IP 可以訪問本機的 Redis)
重啟 Redis 來使上述配置生效。可以依次使用終止、啟動 Redis 來實現(xiàn)重啟。
【附】
- Redis 的手動啟動命令是:service redis start
- Redis 的手動終止命令是:service redis stop
現(xiàn)在可以嘗試遠程訪問 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
和其它數(shù)據(jù)庫一樣,Redis 也有自己的 GUI 軟件 Redis Desktop Manager(簡稱 RDM)。很遺憾也很奇怪的是,該軟件現(xiàn)在下載不是免費的,但卻是開源的。開源意味著可以使用開發(fā)工具來生成該軟件的安裝包。也許開發(fā)者們曾經(jīng)也在開源與收費中徘徊。
RDM 官網(wǎng):https://rdm.dev/
RDM 開源地址: https://github.com/uglide/RedisDesktopManager
(筆者不打算讓簡單問題復(fù)雜化,去教讀者如何生成 RDM 的安裝包,這需要下載 VS 、Qt。但筆者在編寫本教程時已經(jīng)有了安裝包了。)
打開軟件,建立連接。
按下圖填寫信息,先測試連接是否可用。如果連接過程中,出現(xiàn)了無響應(yīng)的狀態(tài),這是正常現(xiàn)象,耐心等待即可。
如果連接可用,就可以建立連接了。
總結(jié)
以上是生活随笔為你收集整理的Linux 下 Redis 安装教程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在 IntelliJ IDEA 中,如何
- 下一篇: 深入理解 CAP 定理