搭建Redis3.2.11版本集群
***搭建时候首先要确定版本号
5.0以下和5.0以上操作有不一样得地方
三主三从搭建:
1.确定要安装得版本(此次安装为redis3.2.11)
下载redis
wget http://download.redis.io/releases/redis-版本号.tar.gz
tar xf redis-3.2.11.tar.gz
配置文件 redis.conf (配置开启集群以及哨兵)
bind 127.0.0.1
protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile "/usr/local/redis-3.2.11/logs"
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir ./
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 yes
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 1
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
lua-time-limit 5000
cluster-enabled yes
cluster-config-file nodes-6379.conf
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
修改好配置文件后:
(1)创建多实例:
创建文件夹 隔离配置文件 redis.conf 修改端口号
[root@localhost ~]#mkdir /data/redis700{0..4}
[root@localhost ~]#cp /usr/local/redis-3.2.11/redis.conf /data/redis700{0..4}/
[root@localhost ~]#sed ‘s/6379/7000/g ’ /data/redis7000 ##修改五个配置文件
(2)启动redis
[root@localhost ~]#redis-server /usr/local/redis-3.2.11/redis.conf
[root@localhost ~]#redis-server /data/redis7000/redis.conf #逐个启动 0-4多实例
启动成功后 有cluster
(3)创建集群 (5.0以下 使用 redis-trib.rb )
redis-trib.rb create --replicas 1 127.0.0.1:6379 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004
~~~~~~~~~~~~~~~~~~~~~~~~~~(在创建集群时会遇到报错 ruby)一般都为版本问题
报错
1.安装RVM来更新ruby
[root@localhost ~]#gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
在执行curl命令的时候有可能报错,无法在服务器使用curl命令访问https域名,原因是nss版本有点旧了,yum -y update nss更新一下,重新curl即可!
[root@localhost ~]#curl -sSL https://get.rvm.io | bash -s stable
[root@localhost ~]# find / -name rvm -print
[root@localhost]# source /usr/local/rvm/scripts/rvm 更新rvm库
[root@localhost]# rvm list known 查看rvm库版本
查看版本后选择自己需要使用得 (这里redis版本为3.2.11所以ruby版本必须在2.2.2以上) 本次下载的是 2.3.3
[root@localhost ~]# rvm install 2.3.3
[root@localhost ~]# rvm use 2.3.3 使用2.3.3版本
[root@localhost ~]# rvm use 2.3.3 --default 设置默认版本
[root@localhost ~]# rvm remove 2.0.0 卸载之前的版本
[root@localhost ~]# ruby --version 查看版本
[root@localhost ~]# gem install redis 安装redis
搭建完成后可看见
在redis集群中 如果主节点down掉 从节点会自动替换为主节点
故障修复后得主节点会成为已经顶上的主节点得从节点。
如果集群已创建需要加入新节点 使用下列命令
[root@localhost ~]#redis-trib.rb add-node 127.0.0.1:7005 127.0.0.1:7000 #加入后为主节点
如果对加入的节点指定为某个的从节点 则需要执行如下命令
[root@localhost ~]# redis-cli -c -p 7005 cluster replicate bb2c610db55745403aa1b6232da8de067285a639 #指定为某个的从节点
删除节点 如果是从节点可以直接删除
[root@localhost ~]# redis-trib.rb del-node nodeIP:port nodeID
如果是主节点:直接删除会报错如下
需要将主节点的槽分配出去
[root@localhost ~]##redis-trib.rb reshard 127.0.0.1:7003
How many slots do you want to move (from 1 to 16384)1365 确认要分配出去的卡槽
What is the receiving node ID cfb28ef1deee4e0fa78da86abe5d24566744411e 输入你要分配到哪个节点的ID
Source node #1:40b8d09d44294d2e23c7c768efc8fcd153446746 输入你要删除哪个节点的ID
Source node #2:done 确认删除
Do you want to proceed with the proposed reshard plan (yes/no) yes