CentOS7編譯安裝Redis5及修改端口、設置開機啓動

本文內容包括:

  • 採用默認路徑安裝redis
  • 設置redis服務後臺運行
  • 設置redis服務開機啓動
  • 修改redis端口
  • 允許遠程登錄及設置認證密碼

環境

系統:CentOS7
Redis:5.0.5

獲取最新版本redis:https://redis.io/download ,下載Stable版本,當前最新版本5.0.5

安裝步驟

1、下載redis安裝包

[root@localhost ~]# cd /usr/local/
[root@localhost local]# wget http://download.redis.io/releases/redis-5.0.5.tar.gz

2、解壓redis-5.0.5.tar.gz

[root@localhost local]# tar -xzf redis-5.0.5.tar.gz

3、進入解壓的redis目錄,通過make命令進行編譯


[root@localhost local]# cd redis-5.0.5/
[root@localhost redis-5.0.5]# make


會顯示以下信息:


    CC lolwut5.o
    LINK redis-server
    INSTALL redis-sentinel
    CC redis-cli.o
    LINK redis-cli
    CC redis-benchmark.o
    LINK redis-benchmark
    INSTALL redis-check-rdb
    INSTALL redis-check-aof

Hint: It's a good idea to run 'make test' ;)

make[1]: 離開目錄“/usr/local/redis-5.0.5/src”
[root@localhost redis-5.0.5]#

4、執行make test驗證編譯是否成功,很不巧,我的編譯錯誤了,根據錯誤提示是tcl的問題,所有我要安裝一下tcl,你需要根據你的驗證結果來處理,直到驗證結果提示成功。


[root@localhost redis-5.0.5]# make test
cd src && make test
make[1]: 進入目錄“/usr/local/redis-5.0.5/src”
    CC Makefile.dep
make[1]: 離開目錄“/usr/local/redis-5.0.5/src”
make[1]: 進入目錄“/usr/local/redis-5.0.5/src”
You need tcl 8.5 or newer in order to run the Redis test
make[1]: *** [test] 錯誤 1
make[1]: 離開目錄“/usr/local/redis-5.0.5/src”
make: *** [test] 錯誤 2
[root@localhost redis-5.0.5]#


###### 我的情況是需要安裝tcl,所以運行下面命令安裝tcl,你需要根據你的結果信息來處理

[root@localhost redis-5.0.5]# yum install -y tcl
......
Running transaction
  正在安裝    : 1:tcl-8.5.13-8.el7.x86_64                                                                                                         1/1
  驗證中      : 1:tcl-8.5.13-8.el7.x86_64                                                                                                         1/1

已安裝:
  tcl.x86_64 1:8.5.13-8.el7

完畢!
[root@localhost redis-5.0.5]#


###### tcl安裝完成後重新運行make test


5、當make test顯示以下結果時,表示編譯成功

在這裏插入圖片描述

6、運行make install命令,將命令安裝到/usr/local/bin目錄


[root@localhost redis-5.0.5]# make install
cd src && make install
make[1]: 進入目錄“/usr/local/redis-5.0.5/src”

Hint: It's a good idea to run 'make test' ;)

    INSTALL install
    INSTALL install
    INSTALL install
    INSTALL install
    INSTALL install
make[1]: 離開目錄“/usr/local/redis-5.0.5/src”
[root@localhost redis-5.0.5]#


7、啓動服務器


[root@localhost redis-5.0.5]# redis-server

界面顯示如下:

在這裏插入圖片描述

8、另開一個命令窗口,進行測試,可以看到通過redis-cli命令連接redis之後,輸入ping,redis會爲我們返回PONG


[root@localhost ~]# redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379>


9、停止服務,退出redis-cli,直接在系統命令行下輸入redis-cli shutdown,前面啓動服務的窗口會輸出如下圖信息:


[root@localhost ~]# redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> exit
[root@localhost ~]# redis-cli shutdown
[root@localhost ~]#


在這裏插入圖片描述

設置redis

1、複製redis配置文件,將redis目錄的redis.conf複製到/etc/redis目錄下,以備使用


[root@localhost redis-5.0.5]# cd /etc/
[root@localhost etc]# mkdir redis
[root@localhost etc]# cd redis/
[root@localhost redis]# cp /usr/local/redis-5.0.5/redis.conf /etc/redis/redis.conf


1、設置可以遠程登錄,編輯/etc/redis/redis.conf配置文件,註釋掉bind 127.0.0.1,如下圖:

在這裏插入圖片描述

2、修改默認端口6379,編輯/etc/redis/redis.conf配置文件,找到port 6379這一行,修改端口爲6380或註釋掉添加一行port 6380,如下圖:

在這裏插入圖片描述

同時修改pidfile,將其改爲pidfile /var/run/redis_6380.pid,修改目的是爲了文件名上的端口和實際端口保持一致,方便通過服務方式啓動、停止,如後面設置開機啓動

在這裏插入圖片描述

3、設置redis服務後臺運行,編輯/etc/redis/redis.conf配置文件,將daemonize設置爲yes,如下圖

在這裏插入圖片描述

4、設置訪問密碼,編輯/etc/redis/redis.conf配置文件,去掉requirepass行的註釋或添加一行,如下圖

在這裏插入圖片描述

注意:由於redis性能非常好,爲防止暴力破解,密碼需要配置的一大長串足夠複雜的字符串,不考慮人是否能記住

5、啓動redis並指定配置文件爲我們剛纔修改的/etc/redis/redis.conf配置文件,服務啓動後就不像前面那樣輸出redis圖形信息的內容了。


[root@localhost redis]# redis-server /etc/redis/redis.conf
23266:C 05 Jul 2019 13:32:46.618 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
23266:C 05 Jul 2019 13:32:46.618 # Redis version=5.0.5, bits=64, commit=00000000, modified=0, pid=23266, just started
23266:C 05 Jul 2019 13:32:46.618 # Configuration loaded
[root@localhost redis]#

6、測試

 
[root@localhost redis]# redis-cli
Could not connect to Redis at 127.0.0.1:6379: Connection refused
not connected> exit
[root@localhost redis]# redis-cli -p 6380
127.0.0.1:6380>
127.0.0.1:6380> ping
(error) NOAUTH Authentication required.
127.0.0.1:6380> auth 123456
OK
127.0.0.1:6380> ping
PONG
127.0.0.1:6380>

在這裏插入圖片描述

由於開啓了遠程訪問,所以在其他電腦上也可以訪問,通過-h指定ip,-p指定端口:


[iypocket@smac src] ./redis-cli -p 6380 -h 192.168.16.125
192.168.16.125:6380> ping
(error) NOAUTH Authentication required.
192.168.16.125:6380> auth 123456
OK
192.168.16.125:6380> ping
PONG
192.168.16.125:6380>

7、停止服務

設置redis開機啓動

1、複製開機啓動腳本,在redis目錄的utils包下,有一個redis_init_script文件,我們複製到/etc/init.d/目錄下,並將文件名改爲redis。


[root@localhost redis]# cp /usr/local/redis-5.0.5/utils/redis_init_script /etc/init.d/redis

2、(非必須)修改/etc/redis/redis.conf文件名爲/etc/redis/6380.conf,此修改非必須,不修改的話可以在步驟3指定配置文件路徑

[root@localhost ~]# mv /etc/redis/redis.conf /etc/redis/6380.conf

3、編輯/etc/init.d/redis啓動腳本,腳本說明如下:


#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.

### BEGIN INIT INFO
# Provides:     redis_6379
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    Redis data structure server
# Description:          Redis data structure server. See https://redis.io
### END INIT INFO

# 端口號,設置爲在配置文件裏設置的端口號
REDISPORT=6380
# redis-server路徑,由於我們是make install默認的路徑,無需修改
EXEC=/usr/local/bin/redis-server
# redis-cli路徑
CLIEXEC=/usr/local/bin/redis-cli

PIDFILE=/var/run/redis_${REDISPORT}.pid
# redis配置文件路徑,默認/etc/redis/端口號.conf,所以我們步驟2修改了配置文件的名字,不要步驟2可以直接修改這裏路徑
CONF="/etc/redis/${REDISPORT}.conf"

case "$1" in
    start)
        if [ -f $PIDFILE ]
        then
                echo "$PIDFILE exists, process is already running or crashed"
        else
                echo "Starting Redis server..."
                $EXEC $CONF
        fi
        ;;
    stop)
        if [ ! -f $PIDFILE ]
        then
                echo "$PIDFILE does not exist, process is not running"
        else
                PID=$(cat $PIDFILE)
                echo "Stopping ..."
                # 因爲設置了密碼,所以此處增加 -a 密碼
                $CLIEXEC -p $REDISPORT -a 123456 shutdown
                while [ -x /proc/${PID} ]
                do
                    echo "Waiting for Redis to shutdown ..."
                    sleep 1
                done
                echo "Redis stopped"
        fi
        ;;
    *)
        echo "Please use start or stop as first argument"
        ;;
esac


在這裏插入圖片描述

4、測試啓動腳本,啓動服務systemctl start redis,停止服務systemctl stop redis


[root@localhost ~]# systemctl start redis
[root@localhost ~]# systemctl stop redis

5、設置開機啓動


[root@localhost ~]# chkconfig --add redis

6、重啓系統,redis服務即隨系統啓動。

[root@localhost init.d]# reboot

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章