前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >学习中心

学习中心

作者头像
用户5766185
发布2019-07-08 14:59:09
5580
发布2019-07-08 14:59:09
举报
文章被收录于专栏:运维架构之路运维架构之路

Redis-liunx 集群搭建部署

一、 环境的准备

3台Liuux7以上的服务器,关闭selinux,关闭防火墙

IP配置:主从节点的端口是在配置的时候自动分配的。

私网IP

主节点端口

从节点端口

192.168.1.3

:52113

:52177

192.168.1.1

:52113

:52177

192.168.1.7

:52113

:52177

二、 单机节点的安装搭建(3台服务器都需要完成)

a) 下载redis安装包

地址:http://download.redis.io/releases/redis-4.0.11.tar.gz

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

b) 上传压缩包到root的家目录下

如果是在linux里直接wget 就不用上传了

c) 解压redis压缩包

tar xf redis-4.0.11.tar.gz

cd redis-4.0.11

make

make install

至此,redis的单机节点就搭建完成了。3台需要都完成上面的安装

三、 多实例的配置,3台服务器都需要完成

1、 在/opt/下创建两个目录

cd /opt

mkdir -p 6379 6380

2、精简化配置文件

cp redis.conf redis.conf.default

grep -Ev "^$|#" /root/redis-4.0.11/redis.conf.default > redis.conf

3、把redis的配置文件拷贝那两个目录下

cp /root/redis-4.0.11/redis.conf /opt/6379

cp /root/redis-4.0.11/redis.conf /opt/6380

4、修改配置文件(红色是需要修改和增加的)

6379的:

[root@iZ64571ujz2wi0Z 6379]# vim redis.conf

bind 0.0.0.0

protected-mode yes

port 52113

cluster-enabled yes

cluster-config-file nodes.conf

cluster-node-timeout 5000

tcp-backlog 511

timeout 0

tcp-keepalive 300

daemonize yes

supervised no

pidfile /var/run/redis_6379.pid

loglevel notice

logfile "/var/log/redis/redis_6379.log"

databases 16

always-show-logo yes

save 900 1

save 300 10

save 60 10000

stop-writes-on-bgsave-error yes

rdbcompression yes

rdbchecksum yes

dbfilename dump.rdb

dir /opt/6379

slave-serve-stale-data yes

repl-diskless-sync no

repl-diskless-sync-delay 5

repl-disable-tcp-nodelay no

slave-priority 100

lazyfree-lazy-eviction no

lazyfree-lazy-expire no

lazyfree-lazy-server-del no

slave-lazy-flush no

appendonly yes

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

aof-use-rdb-preamble no

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-size -2

list-compress-depth 0

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

6380的

[root@iZ64571ujz2wi0Z 6380]# vim redis.conf

bind 0.0.0.0

protected-mode yes

port 52113

cluster-enabled yes

cluster-config-file nodes.conf

cluster-node-timeout 5000

tcp-backlog 511

timeout 0

tcp-keepalive 300

daemonize yes

supervised no

pidfile /var/run/redis_6380.pid

loglevel notice

logfile "/var/log/redis/redis_6380.log"

databases 16

always-show-logo yes

save 900 1

save 300 10

save 60 10000

stop-writes-on-bgsave-error yes

rdbcompression yes

rdbchecksum yes

dbfilename dump.rdb

dir /opt/6380

slave-serve-stale-data yes

repl-diskless-sync no

repl-diskless-sync-delay 5

repl-disable-tcp-nodelay no

slave-priority 100

lazyfree-lazy-eviction no

lazyfree-lazy-expire no

lazyfree-lazy-server-del no

slave-lazy-flush no

appendonly yes

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

aof-use-rdb-preamble no

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-size -2

list-compress-depth 0

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

全部配置完成后,就要开始搭建集群了。

四、 集群的搭建

a) 安装ruby插件(3台服务器都装)

yum install ruby rubygems -y

修改ruby源地址

gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/

b) ruby 版本过低问题解决

1.如果没有安装curl的要先安装curl

sudo yum install curl

2.安装rvm(直接输入以下命令即可)

gpg2 --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3

curl -L get.rvm.io | bash -s stable

source /usr/local/rvm/scripts/rvm

3.安装ruby新版本

rvm install 2.3.3

4、默认使用新版本

rvm use 2.3.3 --default

5、卸载旧版本

rvm remove 2.0.0

6、再次查看ruby版本

ruby -v

c) gem install redis -v 4.0.1

完成后,启动所有的实例(3台服务器都启动)

redis-server /opt/6379/redis.conf

redis-server /opt/6380/redis.conf

echo “

redis-server /opt/6379/redis.conf

redis-server /opt/6380/redis.conf” >> /etc/rc.local #加入到开机自启动中

五、 创建集群

~/redis-4.0.11/src/redis-trib.rb create --replicas 1 192.168.1.1:52113 192.168.1.1:52177 192.168.1.3:52113 192.168.1.3:52177 192.168.1.7:52113 192.168.1.7:52177

至此:集群就创建成功了。

六、 测试:redis-cli –h 192.168.1.1 -c –p 52113

Set foo bar

get foo

重新分片

~/redis-4.0.11/src/redis-trib.rb reshard 192.168.1.1:52113

七、集群管理

集群状态

redis-cli -p 52113 cluster nodes 可查看整个集群的状态

redis-cli -p 52113 cluster nodes|grep master 查看主节点状态

增加新的节点

~/redis-4.0.11/src/redis-trib.rb add-node 192.168.1.1:6381 192.168.1.1:6379

变成某实例的从

进入这个节点

redis-cli 192.168.1.1:6381

redis 192.168.1.1:6381> cluster replicate

删除一个节点

~/redis-4.0.11/src/redis-trib.rb ip:port ‘<node-id>’

删除master节点之前首先要使用reshard移除master的全部slot,然后再删除当前节点。

密码设置需要在集群搭建完成后手工添加 每一个节点都要添加,密码必须一样

redis集群密码设置

方式:进入各个实例进行设置:

redis-cli -c -p 52113 -h 192.168.1.1

config set masterauth passwd123

config set requirepass passwd123

auth passwd123

config rewrite

之后分别使用./redis-cli -c -p 7001,./redis-cli -c -p 7002…..命令给各节点设置上密码。

注意:各个节点密码都必须一致,否则Redirected就会失败, 推荐这种方式,这种方式会把密码写入到redis.conf里面去,且不用重启。

用方式二修改密码,./redis-trib.rb check 10.104.111.174:6379执行时可能会报[ERR] Sorry, can't connect to node 10.104.111.174:6379,因为6379的redis.conf没找到密码配置。

2、设置密码之后如果需要使用redis-trib.rb的各种命令 如:./redis-trib.rb check 127.0.0.1:7000,则会报错ERR] Sorry, can’t connect to node 127.0.0.1:7000 解决办法:vim /usr/local/rvm/gems/ruby-2.3.3/gems/redis-4.0.1/lib/redis/client.rb,然后修改passord

class Client

DEFAULTS = {

:url => lambda { ENV["REDIS_URL"] },

:scheme => "redis",

:host => "127.0.0.1",

:port => 6379,

:path => nil,

:timeout => 5.0,

:password => "passwd123",

:db => 0,

:driver => nil,

:id => nil,

:tcp_keepalive => 0,

:reconnect_attempts => 1,

:inherit_socket => false

}

注意:client.rb路径可以通过find命令查找:find / -name 'client.rb'带密码访问集群(在连接集群的时候必须要直接加上-a和-c访问,否则,在写入键值的时候可能会报错)

./redis-cli -c -p 52113 -h 192.168.1.1-a passwd123

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维架构之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • redis集群密码设置
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档