NoSQL数据库-redis集群搭建

      NoSQL 002  redis 集群

Redis集群
1 部署管理主机
二 查看集群信息
三 检查集群主机信息
四 集群存储数据工作原理
五 访问集群
*****************************
环境准备

  1. /etc/init.d/redis_6379 stop

  2. Vim /etc/redis/6379.conf
    70 集群节点node地址 192.168.4.51
    93 端口 6351
    815 去注释 cluster-enabled yes -打开集群
    823 去注释默认 cluster-config file
    829 去注释修改 cluster-node-timeout 5000
    501 注释掉 requirepass foobared

  3. Rm -rf /var /lib/redis/6379/*

  4. Vim +43 /etc/init.d/redis_6379
    Ip
    Port
    -h 192.168.4.51 -p 6351

  5. /etc/init.d/redis_6379 start

  6. Redis-cli -h192.168.4.51 -p 6351
    Keys *
    Exit


创建集群
集群存储数据工作原理

Rdis 服务器: 6台
管理主机: 1台 主机51
客户端: 1台  主机50 vim /etc/redis/6379.conf
一部署管理主机
任意一台
51主机部署ruby脚本运行环境
创建管理集群脚本

  1. yum -y install rubygems
  2. gem install redis-3.2.1.gem
    3)Rpm -qa ruby || yum -y install ruby
    4)cp redis-4.0.8/src/redis-trib.rb /root/bin/

5)Mkdir /root/bin          创建命令检索目录
6) Tar -zxvf redis-4.0.8.tar.gz
7) Cd redis-4.0.8/src/
8) Cp redis-trib.rb /root/bin/    创建管理集群脚本 
9) Chmod +x /root/bin/redis-trib.rb

Redis-trib.rb   help

三 检查集群主机信息

创建集群
配置6台
10) 五访问集群redis-trib.rb create --replicas 1 192.168.4.51:6351 192.168.4.52:6352 192.168.4.53:6353 192.168.4.54:6354 192.168.4.55:6355 192.168.4.56:6356
Yes 回车

[OK] All nodes agree about slots configuration.

Check for open slots…
Check slots coverage…
[OK] All 16384 slots covered.

Create --replicas 1 定义每台主库个数
******************(*************
解决报错
/etc/init.d/redis_6379  stop
Rm -rf /var/lib/redis/6379
/etc/init.d/redis_6379 start

**五访问集群************************************
二 查看集群信息
[root@mysql51 ~]# redis-trib.rb info 192.168.4.51:6351
-bash: redis-trib: 未找到命令

[root@mysql51 ~]# redis-trib.rb info 192.168.4.51:6351
192.168.4.51:6351 (fefb4f36…) -> 0 keys | 5461 slots | 1 slaves.
192.168.4.52:6352 (2c3bf8d1…) -> 0 keys | 5462 slots | 1 slaves.
192.168.4.53:6353 (02dd6a76…) -> 0 keys | 5461 slots | 1 slaves.

三 检查集群主机信息
6351.>redis-trib.rb check 192.168.4.51:6351
192.168.4.51:6351> cluster info 查看集群信息
Cluster nodes  查看集群节点信息
***************************************


集群存储数据工作原理
变量名 和 crc16算法 做hash 算法后得到一个数字,数字和%16384屈余,根据余数的值,找对应的redis 服务器存储数据

***************************************五访问集群
在客户端client 可以访问任何一台redis 服务器
[root@client ~]# redis-cli -c -h 192.168.4.51 -p 6351

-c 集群模式

192.168.4.51:6351> set b dc
OK
***********************************
六管理集群
停止master 宕机后对应的slave 会自动被选举为master
原master 启动后,会自动配置为当前master 的 slave

检测集群
在管理主机上
Redis-trib.rb check 192.138.4.53:6353
Redis-trib.rb info 192.168.4.53:6353
故障测试

停掉53
之前53的从服务器自动变成master
********************************
七 添加集群master 服务器

添加master 服务器: 57 
1 添加master 主机
root@mysql51 utils]# redis-trib.rb add-node 192.168.4.57:6357
192.168.4.51:6351
2重新分片
[root@mysql51 utils]# redis-trib.rb reshard 192.168.4.51:6351
How many slots do you want to move (from 1 to 16384)? 4096
What is the receiving node ID? 594abe2eee3eaa8c52d4a38f8bbffdc6452d66a0
Please enter all the source node IDs.
Type ‘all’ to use all the nodes as source nodes for the hash slots.
Type ‘done’ once you entered all the source nodes IDs.
Source node #1:all

3添加slave 服务器
[root@mysql51 utils]# redis-trib.rb add-node --slave 192.168.4.58:6358 192.168.4.51:6351
redis-trib.rb info 192.168.4.52:6352

192.168.4.52:6352 (b1f8c717…) -> 0 keys | 4096 slots | 1 slaves.
192.168.4.53:6353 (37f6940b…) -> 0 keys | 4096 slots | 1 slaves.
192.168.4.51:6351 (99795aed…) -> 0 keys | 4096 slots | 1 slaves.
192.168.4.57:6357 (594abe2e…) -> 0 keys | 4096 slots | 1 slaves.

*平均分片
Redis-trib.rb Rebalance 192.168.4.51:6351
***************************************

1 移除slave57 :

redis-trib.rb del-node 192.168.4.51:6351 a6ac5a052e2915fedb250b37022db0b2ae790f1d(57 的从服务器ID)

redis-trib.rb check 192.168.4.52:6352

vim /etc/redis/6379.conf

2 移除master
redis-trib.rb reshard 192.168.4.57:6357 -释放占用的hash槽 重新分片
释放占用的slots 
-指定移除的slots 个数
-指定接受的slots 主机id
-指定移除的slits 主机id

redis-trib.rb del-node 192.168.4.57:6357 594abe2eee3eaa8c52d4a38f8bbffdc6452d66a0  -移除主机

redis-trib.rb check 192.168.4.52:6352

redis-trib.rb info 192.168.4.52:6352
192.168.4.52:6352 (b1f8c717…) -> 0 keys | 4096 slots | 1 slaves.
192.168.4.53:6353 (37f6940b…) -> 0 keys | 4096 slots | 1 slaves.
192.168.4.51:6351 (99795aed…) -> 0 keys | 8192 slots | 1 slaves.
添加回去  57 
1启服务
2重置集群信息
Mysql 57 > Redis-cli -h 192.168.4.57 -p 6357
6357 > cluster reset
Exit
3 添加主机到集群
Mysql51 >Redis-trib.rb add-node 192.168.4.57:6357 192.168.4.51:6351
4 查看集群信息
Redis-trib.rb info 192.168.4.51:6351


还原成独立数据库服务器

/etc/redis/6379.conf stop
Rm -rf /var/lib/redis/6379/*
815
823
829
/etc/init.d/redis_6379 start

Redis-cli -h192.168.4.57 -p 6357
6357 > cluster info
This instance Cluster support disabled
/etc/init.d/redis_6379 stop
181 vim /etc/redis/6379.conf
182 /etc/init.d/redis_6379 start
184 ss -ntulp |grep redis-server

你可能感兴趣的:(数据库)