CentOS7.6下安裝Redis5.0.7

JubilantZ發表於2022-01-03

此次安裝是在CentOS7下安裝Redis5.0.7

一.首先準備Redis安裝包

這裡下載的是 redis-5.0.7.tar.gz 安裝包,並將其直接放在了 root ⽬錄下
    壓縮包下載地址:https://files.cnblogs.com/files/blogs/726807/redis-5.0.7.tar.gz

二.解壓安裝包

2.1在/data下建立redis資料夾並進入

cd /data/
mkdir redis
cd redis

2.2將安裝包解壓到/data/redis/

tar zxvf /root/redis-5.0.7.tar.gz -C /data/redis

解壓完之後會在/data/redis/下生成一個redis-5.0.7的資料夾

三.編譯並安裝

cd /data/redis/redis-5.0.7
make && make PREFIX=/data/redis install

注意:因為缺少相關的包導致編譯失敗

舉例:
1.缺少gcc,則安裝gcc

yum -y install gcc

2.make時報如下錯誤:
zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory
zmalloc.h:55:2: error: #error "Newer version of jemalloc required"
make[1]: *** [adlist.o] Error 1
make[1]: Leaving directory `/data0/src/redis-2.6.2/src'
make: *** [all] Error 2

原因是jemalloc過載了Linux下的ANSIC的malloc和free函式。解決辦法:make時新增引數。

make MALLOC=libc
3.make之後,會出現一句提示Hint: To run 'make test' is a good idea ;

但是不測試,通常是可以使用的。若我們執行make test ,會有如下提示

make test
You need tcl 8.5 or newer in order to run the Redis test
make: ***[test] Error_1

解決辦法是用yum安裝tcl8.5(或去tcl的官方網站http://www.tcl.tk/下載8.5版本,並參考官網介紹進行安裝)

yum -y install tcl

補:問題解決完了最好再重新編譯下。

四.將Redis安裝為系統服務並後臺啟動

    [root@localhost redis-5.0.7]# cd utils/
	//執行服務指令碼  指令碼中redis安裝路徑為/data/redis

        //此處我全部選擇的預設配置即可,有需要可以按需定製!!!
        //參考地址:https://files.cnblogs.com/files/blogs/726807/install_server.sh
        //可以直接貼上上我的我把所有用到的Redis的所有配置都放在了/data/redis目錄下
	
	說明:為了方便,最好自己配置一下install_server.sh中的路徑,就比如後續啟動需要的redis-server 和 配置檔案6379.conf 把它倆放到建的redis資料夾下,方便查詢
    [root@localhost utils]# ./install_server.sh

五.檢視Redis服務啟動情況,並停止Redis服務

	//檢視服務狀態	
        systemctl status redis
	//停止服務
	systemctl stop redis
	//結束程式
	ps -ef|grep redis
	kill -9 PID

六.修改配置檔案和修改系統配置(保證redis的遠端可以訪問)

6.1.編輯redis配置檔案

vi /etc/redis/6379.conf(預設配置檔案位置,修改自己實際配置檔案)

​ vi /data/redis/16379.conf

修改內容: 
1.將 bind 127.0.0.1 修改為 0.0.0.0 //修改IP
2.daemonize yes //在後臺執行
3.protected-mode 設定成no(預設是設定成yes的, 防止了遠端訪問,在redis3.2.3版本後)
4.requirepass 123456 //設定密碼 可不設定

6.2.關閉防火牆和SELINUX

6.2.1關閉防火牆

1、停止firewalld服務
systemctl stop firewalld
 

2、禁止firewalld開機啟動
systemctl disable firewalld

6.2.2關閉SELINUX

vi /etc/selinux/config
將`SELINUX=enforcing`修改為`SELINUX=disabled`,儲存退出

七.啟動Redis並遠端訪問

7.1啟動Redis (使用絕對路徑啟動,一勞永逸,免去一些找不到命令錯誤)

    /data/redis/bin/redis-server /data/redis/16379.conf 

​ ps -ef|grep redis //檢視是否啟動成功

7.2遠端訪問Redis

​ 輸入IP,預設埠號6379,密碼,測試連線,搞定!

八.設定開機啟動Redis(建議設定)

方式 1 vi /etc/rc.d/rc.local

新增啟動命令到 /etc/rc.d/rc.local 中:
/data/redis/bin/redis-server /data/redis/16379.conf 

​ 方式 2 . vi /lib/systemd/system/redis.service

[Unit]
Description=Redis
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
#PIDFile=/data/redis/redis.pid
ExecStart=/data/redis/bin/redis-server /data/redis/16379.conf
ExecReload=/bin/kill -s HUP $MAINPID 
ExecStop=/bin/kill -s QUIT $MAINPID
ExecStartPost=/bin/sh -c "echo $MAINPID > /data/redis/redis.pid"
PrivateTmp=true

[Install]
WantedBy=multi-user.target
//過載系統服務
sudo systemctl daemon-reload

相關文章