1. 使用wget下載gz包,安裝成功如圖所示 wget http://download.redis.io/releases/redis-6.0.3.tar.gz
2. 下載完畢之后進行解壓
tar -zxvf redis-6.0.3.tar.gz
3. 進到解壓后的redis目錄中進行編譯
Make
4. 編譯時若出現以下提示,首次報錯莫生氣,下面還有報錯
該錯誤僅僅說明未安裝gcc,我們安裝好就行了唄
5. 安裝gcc,這時使用命令 yum install gcc
安裝gcc中途會詢問你是安裝這個嗎,輸入y之后回車進行繼續安裝
6. 編譯
安裝好gcc之后,開開心心重新編譯,什么鬼,又出現錯誤了,還跟之前不一樣
穩住,莫慌莫慌,查看相關資源后發現CentOS7默認安裝的是4.8.5,而redis6.0只支持5.3以上版本,原來是版本不支持呀,升級版本、升級
7. CentOS7默認安裝的是4.8.5,而redis6.0只支持5.3以上版本,這里將gcc升級到9
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
8. gcc終於升級好了,這時千萬別忘記要進行版本的切換,升級了新版本肯定是使用新版本嘍
臨時切換:scl enable devtoolset-9 bash
永久切換:echo “source /opt/rh/devtoolset-9/enable” >> /etc/profile
切換完成之后重新連接服務器生效,查看gcc版本 gcc -v
先臨時切換,再輸入永久切換
9. [root@cnetos7 src]# make install PREFIX=/usr/local/redis
報錯信息如下:
CC adlist.o
In file included from adlist.c:34:0:
zmalloc.h:50:31: fatal error: jemalloc/jemalloc.h: No such file or directory
#include <jemalloc/jemalloc.h>
^
compilation terminated.
make: *** [adlist.o] Error 1
錯誤原因:
原因是jemalloc重載了Linux下的ANSI C的malloc和free函數
10.[root@cnetos7 src]# make MALLOC=libc
11. [root@cnetos7 src]# make install PREFIX=/usr/local/redis
測試成功,就是redis安裝成功了
12. 移動配置文件到安裝目錄下
(1)cd ../ 在src目錄下安裝完成
(2)mkdir /usr/local/redis/etc 輸入命令后會詢問是否覆蓋輸入y
(3)mv redis.conf /usr/local/redis/etc 輸入命令后會詢問是否覆蓋輸入y
13.配置redis為后台啟動
(1)輸入命令行:vi /usr/local/redis/etc/redis.conf
進入編輯模式
(2)輸入/(進行查詢,n向下查找,N向上查找)
(3) //將daemonize no 改成daemonize yes
(4)輸入:wq 保存退出
14. 將redis加入到開機啟動
(1)輸入命令:vi /etc/rc.local
(2)進入編輯模式:在里面添加內容:/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf (意思就是開機調用這段開啟redis的命令)
15. 開啟redis
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
16.將redis-cli,redis-server拷貝到bin下,讓redis-cli指令可以在任意目錄下直接使用
cp /usr/local/redis/bin/redis-server /usr/local/bin/
cp /usr/local/redis/bin/redis-cli /usr/local/bin/
輸入命令后會詢問是否覆蓋輸入y
17.設置redis密碼
a.運行命令:redis-cli
b.查看現有的redis密碼(可選操作,可以沒有)
運行命令:config get requirepass 如果沒有設置過密碼的話運行結果會如下圖所示
c.設置redis密碼
運行命令:config set requirepass lam7(****為你要設置的密碼),設置成功的話會返回‘OK’字樣
d.測試連接
(1)redis-cli -h 127.0.0.1 -p 6379 -a lam7 進入6379連接模式
(2)也可以先輸入 redis-cli 進入命令模式 再輸入 auth lam7
(3)按照上述方法設置密碼只是臨時設置,重啟redis后就沒有auth登陸了
(4)解決方案:在redis的配置文件中直接配置密碼
(5)配置文件中有一行是這樣的 :#requirepass foobared
(6)去掉注釋,並且把foobared改為自己的密碼lam7
(7)vi /usr/local/redis/etc/redis.conf
進入編輯模式
(8)輸入/(進行查詢,n向下查找,N向上查找)
(9) //將daemonize no 改成daemonize yes
(10)輸入:wq 保存退出
18.重啟redis的服務
啟動redis,若你的redis已經啟動,則先關閉,按以下方式進行關閉(關閉默認端口)
(1)停止redis(關閉默認端口):
./redis-cli shutdown
查找進程號並殺死進程:
(2)ps -aux|grep redis
(3)kill -9 23828 (后面有server的那個進程)
19. 讓外網能夠訪問redis
a.配置防火牆: firewall-cmd --zone=public --add-port=6379/tcp --permanent(開放6379端口)
systemctl restart firewalld(重啟防火牆以使配置即時生效)
查看系統所有開放的端口:firewall-cmd --zone=public --list-ports
firewall-cmd 這個命令也可以查看是否開放
(1) 如果不顯示6379端口被開放的話:輸入
(2) firewall-cmd --zone=public --add-port=6379/tcp
b.此時 雖然防火牆開放了6379端口,但是外網還是無法訪問的,因為redis監聽的是127.0.0.1:6379,並不監聽外網的請求。
(1)把文件夾目錄里的redis.conf配置文件里的bind 127.0.0.1前面加#注釋掉
(2)命令:redis-cli連接到redis后,通過 config get daemonize和config get protected-mode 是不是都為no,如果不是,就用config set 配置名 屬性 改為no。
(3) 上述中的(2)config get daemonize其實已經設置過了:虛擬機啟動redis就啟動,這個不用改,只需要改后面的config get protected-mode 為no
(4) 關閉redis,然后重啟:/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
(5) 用客戶端連接redis,成功
20. redis常用命令
(1)#啟動redis服務端
$ src/redis-server
(2)#啟動redis客戶端
$ src/redis-cli
(3)停止redis:
使用客戶端:redis-cli shutdown
(4)因為Redis可以妥善處理SIGTERM信號,所以直接kill -9也是可以的:kill -9 PID
(5)卸載redis:
rm -rf /usr/local/redis //刪除安裝目錄
rm -rf /usr/bin/redis-* //刪除所有redis相關命令腳本
rm -rf /root/download/redis-4.0.4 //刪除redis解壓文件夾
21. 查看linux上面是否有安裝redis,redis啟動
(1)[root@localhost bin]# whereis redis-cli
(2)redis-cli: /usr/bin/redis-cli
(3)[root@localhost bin]# whereis redis-server
(4)redis-server: /usr/bin/redis-server
(5)如何查看redis服務正常啟動?:ps aux | grep redis-server