首页 > 其他 > 详细

Redis集群

时间:2020-10-26 22:46:36      阅读:31      评论:0      收藏:0      [点我收藏+]

1、为什么要用redis集群?

首先单机版,需要考虑磁盘空间,如果单机版挂了,那么redis就挂了。

其次主从复制,如果做了独写分离,写的都发到主节点,读的话,都发到从节点。降低了读写的压力。但是从机没办法替换主机,

如果主机挂了,需要人工去用从机替换主机。

其次是哨兵模式,会提供特殊的redis节点,主要作用是监控主机,如果主机挂了,那么会选择从机替换主机。缺陷是写操作无法负载均衡,

替换过程种可能10秒不可用。

最后集群,是由多组哨兵集群

技术分享图片

 

如果存入的数据是“hello” 那么对hello进行crc16算法算出hello的hash值,取余,分配到对应区间的主服务器上,其他两个主服务器是没有存这个数值的,它是采用

分片技术。

CRC16算法(待学)

2、集群搭建

本次版本采用5.0稳定版本,其余版本可以通过http://www.redis.cn/download.html下载(注:5.0以上的按照以下方法搭建)

下载redis到data目录下
wget http://download.redis.io/releases/redis-5.0.5.tar.gz
cd redis-5.0.5
make MALLOC=libc
cd src && make install
编译安装成功

 mkdir redis-cluster

  mkdir redis7000

  mkdir redis7001

  mkdir redis7002

技术分享图片

 cp /data/redis-5.0.5/redis.conf ./redis7000

 vim redis.conf

 bind 服务器ip

 port 7000

 daemonize yes

 dir /data/redis-cluster/redis7000   # 不写绝对路径,会在启动文件夹下

 pidfile /var/run/redis_7000.pid   # 因为一台服务器有三台redis,到时候.pid文件都会写到6379.pid文件夹中

 cluster-enabled yes   # 是否以集群方式启用

 cluster-config-file nodes-7000.conf   # 别的集群找到该集群的配置信息

 cluster-node-timeout 15000   

 cluster-replica-validity-factor 10

 cluster-migration-barrier 1  # master的slave数量大于该值,slave才能迁移到其他孤立的master上,想禁用可以使用一个比较大的值,小于0则启动失败

 cluster-require-full-coverage yes  # 三个集群要将所有的槽道分完,配置成yes时候,当一个服务器宕机后,只有到达这个服务器的数据是丢失的,其他都能正常。

 # 配置设置成no时候,当一个服务器宕机后,该集群就不能接收数据

 

 修改其他配置文件:因为只要修改7000为7001就可以了,记住,这里要chmod 777 redis.conf

  set ‘s/7000/7001/g‘ redis7000/redis.conf > ./redis7001/redis.conf

  set ‘s/7000/7002/g‘ redis7000/redis.conf > ./redis7002/redis.conf

技术分享图片

# 启动redis:
/data/redis-5.0.5/src/redis-server /data/redis-cluster/redis7000/redis.conf 
/data/redis-5.0.5/src/redis-server /data/redis-cluster/redis7001/redis.conf 
/data/redis-5.0.5/src/redis-server /data/redis-cluster/redis7002/redis.conf 
启动成功后:
ps -ef|grep redis 查看下

此时redis是以集群方式运行的,是单节点。

若是集群方式运行则进入redis set key1 value1是不可以的,如下:

/data/redis-5.0.5/src/redis-cli -h ip地址 -p 7000 -c   # 不加-c相当于普通客户端,加了-c相当于以集群方式登陆,并且当在集群中一台redis设置值可以同时设置其他redis的值,这个功能只有redis-cli有,jedis没有 

技术分享图片

 

 技术分享图片

 

 说明用集群启动后,必须要分配槽位才能运行

下面进行meet、指派槽位、分配主从

/data/redis-5.0.5/src/redis-cli -- cluster create ip1:port ip2:port  ip3:port  ip4:port ip5:port ip6:port   --clister-replicas 2

 

Redis集群

原文:https://www.cnblogs.com/su-ke/p/13881547.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!