ubantu16.04安裝redis5.0.3單機版開機啓動

環境介紹

Ubantu 16.04

Redis5.0.3

下載地址(安裝路徑:/usr/local/redis):

http://download.redis.io/releases/redis-5.0.3.tar.gz


一、下載安裝

1.1.創建目錄
mkdir /usr/local/redis
1.2.進入redis目錄
cd /usr/local/redis
1.3.下載
wget http://download.redis.io/releases/redis-5.0.3.tar.gz
1.4.解壓
tar -xvf **redis-5.0.3.tar.gz** 
1.5.文件夾重命名
mv -f redis-5.0.3 redis-single
1.6.進入redis-single目錄
cd /redis-single
1.7.編譯
make

make install

make test

This :輸出下面代碼則無報錯安裝成功**

All tests passed without errors


還有要注意的一點是記得安裝gcc和gcc-c++,還要注意gcc的版本,用gcc -v來查看當前安裝的gcc版本,版本過低(一般需要4.0以上)的話編譯redis3.0以上的是會出錯的。

apt-get install gcc

apt-get install gcc-c++

有可能還要安裝tcl(如果make test出現You need tcl 8.5 or newer in order to run the Redis test的話)

apt-getinstall tcl

安裝需要root權限 命令前加上sudo即可(當前root用戶則不需要)

redis編譯報致命錯誤:jemalloc/jemalloc.h沒有那個文件或目錄

分配器allocator, 如果有MALLOC 這個 環境變量, 會有用這個環境變量的 去建立Redis。

而且libc 並不是默認的 分配器, 默認的是 jemalloc, 因爲 jemalloc 被證明 有更少的 fragmentation problems 比libc。

但是如果你又沒有jemalloc 而只有 libc 當然 make 出錯。 所以加這麼一個參數,運行如下命令:

make MALLOC=libc

1.8.啓動服務
src/redis-server
1.9.運行客戶端
src/redis-cli
1.10測試
set sex 1
get sex
"1"

二、添加redis到服務設爲開機啓動

2.1.修改redis配置
vim redis.conf
#註釋掉開啓遠程訪問
#bind 127.0.0.1 
#關閉保護模式不然遠程還是連接不了
protected-mode no 
#設爲後臺運行
deamonize yes
#添加redis密碼
requirepass 1234
#修改爲你的安裝目錄 redis_端口號 端口改爲該redis服務端口
pidfile /usr/local/redis/redis-single/redis_6379.pid
#redis日誌存放位置
logfile /usr/local/redis/redis-single/redis_log.log 
#redis位置
dir /usr/local/redis/redis-single

修改以上保存即可

2.2.開放redis端口
#開放6379端口
ufw allow 6379 
#關閉防火牆
ufw disable
#打開防火牆
 ufw enable
2.3.添加redis到服務

複製到redis_init_script 到init.d起個名字

cp utils/redis_init_script /etc/init.d/redis-single

編輯

vim /etc/init.d/redis-single

Tips:

注意頭的修改

#! /bin/sh

### BEGIN INIT INFO

# Provides: redis-single

# Required-Start: $syslog $remote_fs

# Required-Stop: $syslog $remote_fs

# Should-Start: $local_fs

# Should-Stop: $local_fs

# Default-Start: 2 3 4 5

# Default-Stop: 0 1 6

# Short-Description: redis-single - Persistent key-value db

# Description: redis-single - Persistent key-value db

### END INIT INFO

原始文件內容:

#!/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=6379
EXEC=/usr/local/bin/redis-server
CLIEXEC=/usr/local/bin/redis-cli

PIDFILE=/var/run/redis_${REDISPORT}.pid
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 ..."
                $CLIEXEC -p $REDISPORT 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

修改後內容

#! /bin/sh

### BEGIN INIT INFO
# Provides:             redis-single
# Required-Start:       $syslog $remote_fs
# Required-Stop:        $syslog $remote_fs
# Should-Start:         $local_fs
# Should-Stop:          $local_fs
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    redis-single - Persistent key-value db
# Description:          redis-single - Persistent key-value db
### END INIT INFO

#redis端口
REDISPORT=6379
#redis server目錄
EXEC=/usr/local/redis/redis-single/src/redis-server
#redis cli
CLIEXEC=/usr/local/redis/redis-single/src/redis-cli
#這和redis.conf設置的一樣
PIDFILE=/usr/local/redis/redis-single/redis_6379.pid
#redis.conf位置
CONF="/usr/local/redis/redis-single/redis.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 'password' 這是關閉redis時候需要的密碼 也就是我們上面設置的redis密碼
                $CLIEXEC -a '1234' -p $REDISPORT 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

設置服務腳本有執行權限

chmod +x /etc/init.d/redis-single

註冊服務 開機啓動

cd /etc/init.d
update-rc.d redis-single defaults

Tips:

啓動redis

service redis start

關閉redis

service redis stop

重啓系統測試是否成功

reboot

三、添加快速運行指令

3.1.編輯
vim ~/.bashrc
3.2.添加保存
alias REDIS_HOME='cd /usr/local/redis/'
3.3.立即生效
source ~/.bashrc

Tips:

任意終端輸入

REDIS_HOME

進入Redis目錄

可以自行添加比較順手的命令去執行redis服務


2018即將過去了,我不想去懷念它
2018已經過去了,我決定去懷念它
不管過得像一首詩還是像一攤狗屎

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