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