专注于快乐的事情

redis集群部署

redis集群部署

cd /root/Downloads
wget http://download.redis.io/releases/redis-3.2.8.tar.gz
mkdir -p /opt/soft/

tar -zxf zxf redis-3.2.8.tar.gz -C /opt/soft/

cd /opt/soft
ln -s redis-3.2.8 redis

下载新版redis

cd /root/Downloads
wget http://download.redis.io/releases/redis-3.2.8.tar.gz

解压

mkdir -p /opt/soft/
tar -zxf zxf redis-3.2.8.tar.gz -C /opt/soft/

加软连接

cd /opt/soft/
ln -s redis-3.2.8 redis

编译redis

yum -y install gcc tcl
cd /opt/soft/redis/src
make MALLOC=libc
检查有没有错误, make test

添加环境变量

vim /etc/profile
export PATH=$PATH:/opt/soft/redis/src
source /etc/profile

  1. 修改配置文件
    cd /opt/soft/redis
    cp redis.conf redis-7000.conf
    vim redis-7000.conf
    daemonize no 改为 yes # 是否后台运行
    port 7000 #端口,如果在同一台机器使用,注意修改端口
    tcp-keepalive 60 #
    #bind1 27.0.0.1 #注解此配置,否则任何使用都需要符合此ip限制
    pidfile redis.pid #所有file默认在dir配置的目录下面
    stop-writes-on-bgsave-error no #rdb写失败不影响后续写入
    rdbchecksumno #检查rdb是否正确,损失10%性能
    dir /opt/soft/redis/data-7000 #data文件存放位置
    protected-mode no#关闭保护模式
    cluster-enabled yes #开启集群
    cluster-config-file nodes.conf #集群配置
    cluster-node-timeout 15000 #超时检测时间
    cluster-slave-validity-factor0#防止slave不再failover导致集群不可用
    cluster-require-full-coverage no #槽点丢失不影响其他部分使用
    appendonly no #关闭aof模式

建立7001文件和7002文件

cp redis-7000.conf redis-7001.conf
cp redis-7000.conf redis-7002.conf

替换配置文件
vim redis-7001.conf
:%s/7000/7001/g

vim redis-7002.conf
:%s/7000/7002/g

7001,7002,copy到第二台服务器

建立数据目录

redis集群最少3master,3slave。根据机器及其性能分配
mkdir data-7000 data-7001 data-7002

  1. 启动6个redis实例
    服务脚本文件在redis安装目录的utils文件夹里redis_init_script修改下就可用
    cp utils/redis_init_script /etc/init.d/redis-7000

修改前5项配置
REDISPORT=7000
EXEC=/opt/soft/redis/src/redis-server
CLIEXEC=/opt/soft/redis/src/redis-cli

PIDFILE=/opt/soft/redis/data-${REDISPORT}/redis.pid
CONF=”/opt/soft/redis/redis-${REDISPORT}.conf”
PASSWORD=wdzj2015

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 …”
if [ -n $PASSWORD ]
then
$CLIEXEC -p $REDISPORT -a $PASSWORD shutdown
else
$CLIEXEC -p $REDISPORT shutdown
fi
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
cp /etc/init.d/redis-7000 /etc/init.d/redis-7001
修改端口7000为7001即可
cp /etc/init.d/redis-7000 /etc/init.d/redis-7002
修改端口7000为7002即可
service redis-7000 start
service redis-7001 start
service redis-7002 start

ps -ef | grep redis

  1. 安装执行集群需要的环境
    yum install -y ruby
    yum install -y rubygems
    gem install redis
  2. 配置集群
    redis-trib.rb create –replicas 1 192.168.11.46:7000 192.168.11.47:7001 192.168.11.46:7002 192.168.11.47:7000 192.168.11.46:7001 192.168.11.47:7002
    redis-trib.rb最少3个参数,否则报错

默认前3个是master,后3个是slave
Can I set the above configuration? (type ‘yes’ to accept): yes
允许redis修改节点信息

集群配置完成。
如果出现长时间wait可以视为创建失败,停掉所有服务,删除所有nodes.conf,文件在conf的$dir下;删除后重启redis,重新执行第十步,直到成功

  1. 检查是否配置好
    ps-ef|grep redis

安装成功,检测节点状态
登陆redis
redis-cli -p 7000 -a wdzj2015 –c
redis-cli -h 192.168.11.123 -p 7006 -c
执行clusternodes查看是否3master3slave,如图:

没有fail就表明安装成功。如果有fail检测网络情况。如果不足6个请重复第10步删除nodes.conf后重新创建节点。

检查节点
./redis-trib.rb check 10.254.62.12:7001

redis-cli -p 7000 -a hyjk2017 -c
测试

SET abc abcvalue EX 60 NX

参考

http://blog.csdn.net/huwei2003/article/details/50973967
http://blog.csdn.net/naixiyi/article/details/51339374
http://blog.csdn.net/yyyuuueeee/article/details/52249732
http://www.tuicool.com/articles/bUVRNn2
https://yq.aliyun.com/articles/61734

temp
http://blog.csdn.net/fengyong7723131/article/details/52995592

http://blog.csdn.net/sanwenyublog/article/details/53167544

评论系统未开启,无法评论!