天天看點

CentOS6.8安裝Redis3.2.5

1、下載下傳Redis3.2.5安裝包

wget http://download.redis.io/releases/redis-3.2.5.tar.gz

2、解壓、編譯、安裝redis-3.2.5:

tar -zxvf redis-3.2.5.tar.gz -C /usr/src/

cd /usr/src/redis-3.2.5/

make PREFIX=/home/redis install

3、建立redis相關目錄:

mkdir -p /home/redis/log

mkdir -p /home/redis/pid

mkdir -p /home/redis/db

4、将可執行檔案複制到自己的安裝目錄:/home/redis/

ln -s /usr/local/bin/redis-* /home/redis/bin/

(第4步可以不要)

5、複制配置檔案到自己的安裝目錄:/home/redis/

cp redis.conf /home/redis/

6、進入自己的安裝目錄,編輯redis.conf配置檔案:

cd /home/redis/

vim /home/redis/redis.conf

根據實際需要修改配置檔案,以下僅供參考

daemonize yes

pidfile /home/redis/pid/redis.pid

logfile /home/redis/log/redis.log

dir /home/redis/db

port 6379

tcp-backlog 511

timeout 600

tcp-keepalive 0

loglevel notice

databases 16

save 900 1

save 300 10

save 60 10000

rdbcompression yes

dbfilename dump.rdb

slave-serve-stale-data yes

appendonly yes

appendfilename "appendonly.aof"

appendfsync everysec

no-appendfsync-on-rewrite no

auto-aof-rewrite-percentage 100

auto-aof-rewrite-min-size 64mb

slowlog-log-slower-than 10000

slowlog-max-len 128

latency-monitor-threshold 0

notify-keyspace-events ""

hash-max-ziplist-entries 512

hash-max-ziplist-value 64

list-max-ziplist-entries 512

list-max-ziplist-value 64

set-max-intset-entries 512

zset-max-ziplist-entries 128

zset-max-ziplist-value 64

hll-sparse-max-bytes 3000

activerehashing yes

client-output-buffer-limit normal 0 0 0

client-output-buffer-limit slave 256mb 64mb 60

client-output-buffer-limit pubsub 32mb 8mb 60

hz 10

aof-rewrite-incremental-fsync yes

#vm-enabled no

#max-memory 4G

7.修改環境變量

vim /etc/profile

export PATH=/home/redis/bin:$PATH

8.修改系統核心參數

a. sysctl vm.overcommit_memory=1

b. echo never > /sys/kernel/mm/transparent_hugepage/enabled

并且将它寫進/etc/rc.local檔案裡,防止重新開機後失效。

c.echo 511 > /proc/sys/net/core/somaxconn

vim /etc/sysctl.conf(永久修改)

systemctl -p

9、建立redis服務腳本,并賦予權限:

vim /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.

PATH=/home/redis/bin:/sbin:/usr/bin:/bin

REDISPORT=6379

EXEC=/home/redis/bin/redis-server

CLIEXEC=/home/redis/bin/redis-cli

PIDFILE=/home/redis/pid/redis.pid

CONF="/home/redis/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 ..."

$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

8、添加redis服務開機啟動:

chmod a+x /etc/init.d/redis

9、啟動redis服務:

service redis start

ps -ef | grep redis

netstat -anptu | grep 6379

10、測試OK

redis-cli

set key1 hello

get key1

quit

(防火牆啟用6379端口:iptables -A INPUT -p tcp --dport 6379 -j ACCEPT)

注意:運作過程中,若出現報錯, MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk.則說明伺服器記憶體不足,導緻redis在使用rdb快照方式持久化資料,fork另一個程序時,記憶體不夠用。此時,可以用指令打開核心參數echo 1 > /proc/sys/vm/overcommit_memory。

redis兩種持久化資料方式,一是rdb快照方式,二是aof方式。

rdb方式是在定時時間到了後,fork一個程序将資料刷寫到磁盤。如果定時刷寫之前redis發生故障,會發生資料丢失。

aof方式有三種政策,1.每一條aof記錄都立即同步到檔案,但IO開銷較大。2.每秒同步一次。3.redis并不直接調用檔案同步,而是交給作業系統來處理,作業系統可以根據buffer填充情況/通道空閑時間等擇機觸發同步。

如果你的redis持久化手段中有aof,那麼在server故障失效後再次啟動前,需要檢測aof檔案的完整性。aof檔案預設位于src下appendonly.aof。指令為./redis-check-aof --fix appendonly.aof

轉載于:https://blog.51cto.com/jack88/2051318