redis集群linux安装教程,linux redis5.0 集群搭建步骤

linux redis5.0 集群搭建

一、下载

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

二、解压、编译

#解押到 /usr/local/ 文件夹

tar -zxvf redis-5.0.0.tar.gz -C /usr/local/

yum -y install gcc

# 编译,并安装熬 /usr/local/redis 文件夹

cd /usr/local/redis-5.0.0

make & make install PREFIX=/usr/local/redis

#复制 redis.conf 到安装目录

cp -r  /usr/local/redis-5.0.0/redis.conf  /usr/local/redis

三、搭建集群

#创建集群目录

mkdir  /usr/local/redis-cluster

# 复制redis原版到第一个集群节点文件夹

cp -r /usr/local/redis/bin /usr/local/redis-cluster/7001

# 打开 redis.conf 集群配置文件

vim /usr/local/redis-cluster/7001/redis.conf

# 配置下面内容

daemonize yes

bind 0.0.0.0

protected-mode no

port 7001

requirepass "yingfeng365"

masterauth "yingfeng365"

cluster-enabled yes

cluster-config-file /usr/local/redis-cluster/nodes_7001.conf

cluster-node-timeout 5000

pidfile /usr/local/redis-cluster/redis_7001.pid

logfile "/usr/local/redis-cluster/redis_7001.log"

dir /usr/local/redis-cluster/7001

# 以第一个节点为原版,再复制五个节点,并修改 redis.conf 为对应端口

cp -r /usr/local/redis-cluster/7001 /usr/local/redis-cluster/7002

启动

/usr/local/redis-cluster/7000/redis-server /usr/local/redis-cluster/7000/redis.conf

/usr/local/redis-cluster/7001/redis-server /usr/local/redis-cluster/7001/redis.conf

/usr/local/redis-cluster/7003/redis-server /usr/local/redis-cluster/7003/redis.conf

/usr/local/redis-cluster/7004/redis-server /usr/local/redis-cluster/7004/redis.conf

/usr/local/redis-cluster/7005/redis-server /usr/local/redis-cluster/7005/redis.conf

/usr/local/redis-cluster/7006/redis-server /usr/local/redis-cluster/7006/redis.conf

关闭

/usr/local/redis-cluster/7001/redis-cli  -p 7001 shutdown save

/usr/local/redis-cluster/7002/redis-cli  -p 7002 shutdown save

/usr/local/redis-cluster/7003/redis-cli  -p 7003 shutdown save

/usr/local/redis-cluster/7004/redis-cli  -p 7004 shutdown save

/usr/local/redis-cluster/7005/redis-cli  -p 7005 shutdown save

/usr/local/redis-cluster/7006/redis-cli  -p 7006 shutdown save

启动集群

./redis-cli --cluster create 10.66.0.11:7000 10.66.0.11:7001 10.66.0.21:7000 10.66.0.21:7001 10.66.0.31:7000 10.66.0.31:7001 --cluster-replicas 1

k8s

先建sc.yml

nfs.yml

然后

redis.yml 6副本

redis-mgr.yml 进去组建集群,方法和虚机一样,目录:/usr/redis-4.0.*/src/redis-trib

./redis-trib.rb create --replicas 1 120.77.213.58:6480 120.77.213.58:6481 120.77.213.58:6482 120.77.213.58:6483 120.77.213.58:6484 120.77.213.58:6485

redis-trib.py create 10.233.16.5:6379 10.233.167.14:6379 10.233.110.107:6379

redis-trib.py create \

`dig +short redis-cluster-0.redis-service.default.svc.cluster.local`:6379 \

`dig +short redis-cluster-1.redis-service.default.svc.cluster.local`:6379 \

`dig +short redis-cluster-2.redis-service.default.svc.cluster.local`:6379

redis-trib.py replicate --master-addr `dig +short redis-cluster-0.redis-service.default.svc.cluster.local`:6379 --slave-addr `dig +short redis-cluster-3.redis-service.default.svc.cluster.local`:6379

redis-trib.py replicate --master-addr `dig +short redis-cluster-1.redis-service.default.svc.cluster.local`:6379 --slave-addr `dig +short redis-cluster-4.redis-service.default.svc.cluster.local`:6379

redis-trib.py replicate --master-addr `dig +short redis-cluster-2.redis-service.default.svc.cluster.local`:6379 --slave-addr `dig +short redis-cluster-5.redis-service.default.svc.cluster.local`:6379

./redis-trib.rb create --replicas 1 `dig +short redis-cluster-0.redis-service.default.svc.cluster.local`:6379 `dig +short redis-cluster-0.redis-service.default.svc.cluster.local`:6379 `dig +short redis-cluster-0.redis-service.default.svc.cluster.local`:6379 `dig +short redis-cluster-0.redis-service.default.svc.cluster.local`:6379 `dig +short redis-cluster-0.redis-service.default.svc.cluster.local`:6379 `dig +short redis-cluster-0.redis-service.default.svc.cluster.local`:6379

随机组建集群3master 3 slave

./redis-trib.rb create --replicas 1 10.233.73.62:6379 10.233.241.82:6379 10.233.251.146:6379 10.233.251.145:6379 10.233.73.26:6379 10.233.241.113:6379

组建3个master

./redis-trib.rb create 10.233.16.42:6379 10.233.110.123:6379 10.233.211.189:6379

指定节点slave绑定master  master-id 主节点ID slave:6379  master:6379

./redis-trib.rb add-node --slave --master-id 00896b56e2183f47fee14a69ff0cac9d3159f6bb 10.233.16.61:6379 10.233.16.42:6379

指定节点slave绑定master

./redis-trib.rb add-node --slave --master-id ad71211d1576e2786409c34240c702c5b566d376 10.233.110.96:6379 10.233.110.123:6379

指定节点slave绑定master

./redis-trib.rb add-node --slave --master-id 9c465ffcf0c6fdbf3b1f7c7af6eb8436d715e22a 10.233.16.11:6379 10.233.211.189:6379

k8s集群调用方式

sentinels: "redis-cluster-0.redis-cluster:6379,redis-cluster-1.redis-cluster:6379,redis-cluster-2.redis-cluster:6379,redis-cluster-3.redis-cluster:6379,redis-cluster-4.redis-cluster:6379,redis-cluster-5.redis-cluster:6379"

redis迁移

$ yum install automake libtool autoconf bzip2 -y

$ git clone https://github.com/vipshop/redis-migrate-tool

$ cd redis-migrate-tool

$ autoreconf -fvi

$ ./configure

$ make

2、配置文件从redis cluster集群迁移数据到另外一个redis cluster集群 rmt.conf

[source]

type: redis cluster

servers:

- 127.0.0.1:8379

[target]

type: redis cluster

servers:

- 127.0.0.1:7379

[common]

listen: 0.0.0.0:8888

运行

$ src/redis-migrate-tool -c rmt.conf -o log -d

检查状态

$ redis-cli -h 127.0.0.1 -p 8888 info

查看所有key

KEYS *

查看key总数

DBSIZE

清空所有数据

FLUSHALL

5、数据校验:当数据迁移完成后,就可以进行数据迁移后的检查操作

$ src/redis-migrate-tool -c rmt.conf -o log -C "redis_check"

Check job is running...

Checked keys: 1000

Inconsistent value keys: 0

Inconsistent expire keys : 0

Other check error keys: 0

Checked OK keys: 1000

All keys checked OK!

Check job finished, used 1.041s

6、如何完成业务切换?

如果是异构集群的迁移,更改redis驱动/客户端和修改代码,重新发布是必然的事情。如果是同构集群,做配置发布就可以。如果没有做重启发布,等待源集群没有连接之后,可以关闭RMT进程(kill)。或者重启应用,强制断开长连接。

五、注意事项

1、重要的事说三遍,RMT迁移数据到twemproxy,需要保持rmt.conf 中 [target]  hash、distribution、servers 三个参数和目标集群的twemproxy配置严格一致。

2、迁移中和业务切换之前,请反复观察“-o rmt.log”日志信息,确认是否有异常。

3、业务切换之前,请充分检查,特别是数据的一致性。

4、RMT 建议部署在单独空闲机器上,同目的集群在同一个网段(跨机房迁移数据,可以提高迁移速度)。千万不要部署在源集群所在的机器,防止资源不足,比如内存,带宽,IOPS。

5、注意RDB传输是否超时。

6、redis client buf中的slave项,设置足够大的buffer size和超时时间。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值