Redis主从部署文档20141216

Redis主从部署文档20141216
===================================================================
http://www.redis.io/download
https://code.google.com/p/redis/downloads/list
 
===================================================================
Redis-Master部署

yum install -y tcl

mkdir -p /tools/redis
cd /tools/redis
wget http://download.redis.io/releases/redis-2.8.19.tar.gz
tar zvfx redis-2.8.19.tar.gz
cd redis-2.8.19
make
make test
mkdir -p /usr/local/redis/6379/{etc,bin}
/bin/cp -r src/* /usr/local/redis/6379/bin/
/bin/cp redis.conf /usr/local/redis/6379/etc/
cd /usr/local/redis/6379/etc/
/bin/cp redis.conf redis.conf.ori
mkdir -p /data/redis/6379

 

vi /usr/local/redis/6379/etc/redis.conf (Master Redis)
#=======================================================================
daemonize yes
pidfile /usr/local/redis/6379/6379.pid
port 6379
tcp-backlog 511
timeout 300
unixsocket /dev/shm/redis.sock
unixsocketperm 777
tcp-keepalive 60
loglevel notice
logfile "/data/redis/6379/6379.log"
databases 16
save 300 1
save 150 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename 6379.rdb
dir /data/redis/6379/
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
lua-time-limit 5000
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
#requirepass  58d4b27e87
bind 192.168.1.218
#SLAVE CONFIG
#slaveof     master-ip master-port
#masterauth  master-pwd
#===========================================================================
 
REDIS启动脚本:
 
vim 6379.sh 
#----------------------------------------------------------------------------------------------------------------
#!/bin/bash

#source function library
. /etc/init.d/functions

LOCAL_IP="192.168.1.218"
PORT="6379"
PWD="58d4b27e87"

EXEC="/usr/local/redis/${PORT}/bin/redis-server"
REDIS_CLI="/usr/local/redis/${PORT}/bin/redis-cli"
PID="/usr/local/redis/${PORT}/${PORT}.pid"
CONF="/usr/local/redis/${PORT}/etc/redis.conf"

case "$1" in
        start)
                if [ -f $PID ]
                then
                        echo "Process is already running."
                else
                        $EXEC $CONF
                     if [ "$?"="0" ];then
                                 action "Starting Redis server..." /bin/true
                     fi
          fi
                ;;
        stop)
                if [ ! -f $PID ]
                then
                        echo "Process is not running."
                else
                        PID=$(cat $PID)
                        $REDIS_CLI -p ${PORT} -h ${LOCAL_IP} -a ${PWD} SHUTDOWN
                        if [ $? = 0 ];then
                             action "Redis stopped" /bin/true
               fi    
                fi
                ;;
        restart|force-reload)
                ${0} stop
                ${0} start
                ;;
        *)
                echo "Usage:/bin/sh ${0} {start|stop|restart|force-reload}"
                exit 1
     esac
#----------------------------------------------------------------------------------------------------------------
 
#加入开机启动
echo "/usr/local/redis/6379/6379.sh start" >> /etc/rc.local
 
#启动REDIS
chmod a+x /usr/local/redis/6379/redis/6379.sh
/usr/local/redis-6379/redis/6379.sh start
 
优化:
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo 65535 > /proc/sys/net/core/somaxconn
echo 1 > /proc/sys/vm/overcommit_memory
 
PS
1:主从部署
从库部署与主库相同,唯一不同之处打开如下两行文件即可;
#slaveof 192.168.0.212 6379
#masterauth 64125568Qq

2:手动开关闭命令
开启命令:
/usr/local/redis/6379/bin/redis-server /usr/local/redis/6379/etc/redis.conf
关闭命令:
/usr/local/redis/src/redis-cli -h 192.168.0.218 -p 6379 -a"这里输入密码" shutdown
 
3:内核优化:
echo 1 > /proc/sys/vm/overcommit_memory && sysctl -p
overcommit_memory文件指定了内核针对内存分配的策略,其值可以是0、1、2。                               
0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。 
1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
2, 表示内核允许分配超过所有物理内存和交换空间总和的内存
 
4:监听队列长度优化
echo 65535 > /proc/sys/net/core/somaxconn
定义了系统中每一个端口最大的监听队列的长度,这是个全局的参数,默认值为128,具体信息为
 
5:echo never > /sys/kernel/mm/transparent_hugepage/enabled
 
posted @ 2015-01-10 22:06  study-notes  阅读(196)  评论(0编辑  收藏  举报