redis集群布署文档
redis集群布署文档
随心而安 发表于8个月前
redis集群布署文档
  • 发表于 8个月前
  • 阅读 16
  • 收藏 0
  • 点赞 0
  • 评论 0

【腾讯云】买域名送云解析+SSL证书+建站!>>>   

1. 下载新版redis-3.X.X.tar.gz

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

2. 解压 tar -zxf redis-3.2.0.tar.gz -C /wdzj/java

3. 加软连接

cd /wdzj/java/

ln -s redis-3.X.X redis

4. 进入src目录编译redis

cd /wdzj/java/redis/src

make

5. 添加环境变量

vim /etc/profile

export PATH=$PATH:/wdzj/java/redis/src

source /etc/profile

6. 修改配置文件

cd /wdzj/java/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 /wdzj/java/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模式

cp redis-7000.conf redis-7001.conf

替换所有的7000为7001

vim redis-7001.conf

:%s/7000/7001/g

cp redis-7000.conf redis-7002.conf

替换所有的7000为7002

vim redis-7002.conf

:%s/7000/7002/g

7. copy配置为7001,7002,copy到第二台服务器

redis集群最少3master,3slave。根据机器及其性能分配

mkdirdata-7000data-7001data-7002

8. 启动6个redis实例

服务脚本文件在redis安装目录的utils文件夹里redis_init_script修改下就可用

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

 

修改前5项配置

REDISPORT=7000

EXEC=/wdzj/java/redis/src/redis-server

CLIEXEC=/wdzj/java/redis/src/redis-cli

 

PIDFILE=/wdzj/java/redis/data-${REDISPORT}/redis.pid

CONF="/wdzj/java/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

 

9. 安装执行集群需要的环境

yum install -y ruby

yum install -y rubygems

gem install redis

10. 配置集群

redis-trib.rbcreate --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,重新执行第十步,直到成功

11. 检查是否配置好

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
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 0
博文 7
码字总数 3464
×
随心而安
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: