Nosql之Redis集群

单节点redis服务器带来的问题

        单点故障,服务不可用

        无法处理大量的并发数据请求

        数据丢失一大灾难

解决方法

        搭建Redis集群

Redis集群

        redis集群是一个提供在多个Redis间节点间共享数据的程序集

        Redis集群并不支持处理多个keys的命令因为这需要在不同节点移动数据,从而达不到像Redis那样的性能,在高负载的情况下可能会导致不可预料的错误

        Redis集群通过分区来提供一定程度的可用性,在实际环境中当某个节点不可用时,可使用群集中别的服务器,来保证稳定

集群的优势

        自动分割数据到不同的节点上

        整个集群的部分节点失败或者不可达的情况下能够继续处理命令

实现的方法

        有客户端分片

        代理分片

        服务器端分片

Redis-Cluster数据分片

        Redis集群没有使用一致性hash,而是引入了哈希槽的概念

        redis集群有16384个哈希槽

        每个key通过CRC16效验后对16384取模来决定放置槽

        集群的每个节点负责一部分哈希槽

部署

        1.准备六台机器,修改主机名,方便辨识

        2.在六台机器上部署Redis

yum -y install gcc gcc-*
tar zxvf redis-4.0.9.tar.gz
cd redis-4.0.9
make
make PREFIX=/usr/local/redis install
ln -s /usr/local/redis/bin/* /usr/local/bin/
cd utils/
./install_server.sh

        3.在master1节点,调整配置文件

vi /etc/redis/6379.conf

                 1.重启配置文件,过滤端口,回显效果

/etc/init.d/redis_6379 restart
ss -nlpt | grep 6379

        4.另外五台都是如此操作 

        5.配置redis集群(配置集群有脚本,但是需要安装ruby来运行脚本)

                1.在master1节点上安装ruby软件

                2.上传ruby软件包(ruby-2.6.9.tar.gz)

 sudo yum install -y gcc make openssl-devel readline-devel zlib-devel
 cd
 # 编译安装
tar zxf ruby-2.6.9.tar.gz -C /usr/src/
cd /usr/src/ruby-2.6.9/
./configure --prefix=/usr/local/ruby-2.6.9
make && make install
# 优化执行路径
ln -s /usr/local/ruby-2.6.9/bin/ruby /usr/bin/ruby
ln -s /usr/local/ruby-2.6.9/bin/gem /usr/bin/gem

                3.用gem安装redis(安装时间较久,耐心等待)

gem install redis
cd
/root/redis-4.0.9/src/redis-trib.rb create --replicas 1 192.168.27.143:6379 192.168.27.129:6379 192.168.27.130:6379 192.168.27.132:6379 192.168.27.133:6379 192.168.27.134:6379

                4.执行完后yes确认,等待一段时间

        6.调整主从节点

                1.删除节点

#删除从节点,/root/redis-4.0.9/src/redis-trib.rb del-node 要删除的从节点IP 要删除从节点的编码ip
/root/redis-4.0.9/src/redis-trib.rb del-node 192.168.27.133:6379 e7855d319f0a6af1bf39e24adfcf75659e15f79a
/root/redis-4.0.9/src/redis-trib.rb del-node 192.168.27.132:6379 dd1d7fc0704a55c34f3b6e15afe3a1152775ca34
/root/redis-4.0.9/src/redis-trib.rb del-node 192.168.27.134:6379 bd000de9af75eb02642dad52279da4c7574c5bed


/root/redis-4.0.9/src/redis-trib.rb check 192.168.27.142:6379

                2.加入节点到集群

#清理三台slave节点
rm -rf /var/lib/redis/6379/*
pkill redis
/etc/init.d/redis_6379 start

                3.加入节点

#/root/redis-4.0.9/src/redis-trib.rb add-node --slave --master-id master1的id slave1的ip:6379 master1的ip:6379

                4.测试

# 启动时使用 -c 参数来启动集群模式
redis-cli -c -h 192.168.27.142

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值