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