在centos7中安裝redis


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM