Redis分片集群对Redis集群进行分片,采用多主多从的方式实现Redis集群,每一个分片都是由一个Redis主机和多个从机组成,片区和片区之间是相互平行的,Redis Cluster就是Redis 3.0+版本之后官方推荐的一种分片集群实现方式,主要是基于Hash卡槽(slot)和crc16(key)算法的实现策略来实现Redis集群分片和数据跨主机转移、共享。这是一种去中心化的集群解决方案,可以实现Redis动态扩容和缩容,但是缺点就是集群环境比较复杂,搭建成本高。
在不使用去中心化集群时,我们通常采用了主从复制+哨兵模式实现的,【主从模式】【哨兵模式】,一般采用了(一主多从)搭建Redis集群实现的,采用哨兵模式作为守护存在,一旦主节点宕机,就进行投票选举,实现自动化故障发现和转移,最大化保证集群的高可用。但是在此期间,是禁止使用写操作,同时主节点宕机就会导致数据丢失。
这时候就需要用到Redis Cluster去中心化分片集群,Redis Cluster去中心化分片集群使用Hash卡槽来确定和定位Key的读写位置,最大的优点是有利于Redis动态扩容、缩容,把宕机数据丢失的风险降到最小。
缺点:
优点:
N(Key的卡槽数)=crc16(Key)%16384
需要注意的地方:
Redis Cluster去中心化分片集群使用Hash卡槽来确定和定位Key的读写位置,最大的优点是有利于Redis动态扩容、缩容,把宕机数据丢失的风险降到最小。
手上暂时没有太多空余的服务器,采用了一台服务器通过采用不同端口来区分不同的Redis节点,也方便初期搭建减少了一些因操作不数量导致的错误。
**怎么区分不同的Redis节点:**使用不同的Redis配置文件设置不一样的端口,启动不同的Redis服务,使用端口区分不同的Redis服务。
这里采用了三主三从的集群环境搭建,也就是三台主节点+三台子节点
安装Redis6.2.1【点这里】
操作环境:
Centos7
Redis 6.2.1
xshell 6
端口号分别设置成:9000,9001,9002,9003,9004,9005
我的启动项在/usr/local/bin/下面
cd /usr/local/bin
mkdir three-myredis
cp redis.conf /usr/local/bin/
mv redis.conf redis9000.conf
使用vim编辑配置文件。
cd /
cd /usr/local/bin/three-myredis
vim redis9000.conf
建议使用vim来编辑配置文件。
vim和vi一样的操作,但是vim会把注释的内容特殊颜色标识,未注释的采用白色标识。
如果使用vim提示未找到此命令。
执行这条命令,来安装vim编辑器
yum -y install vim*
需要修改的内容:
== 提示进入编辑文件后,输入/ 后面跟所要查询的内容,例如/ prot小写n是向下查找,大写N是向上查找。 ==
将上面的复制到下面的框框里面,注意后面的空格不能带,linux对空格敏感
注意,下面的语句前面有一个#,一定要干掉,不然启动不了。
修改完后,执行复制文件。
cp redis9000.conf redis9001.conf
cp redis9000.conf redis9002.conf
cp redis9000.conf redis9003.conf
cp redis9000.conf redis9004.conf
cp redis9000.conf redis9005.conf
再对新cp的文件进行编辑,提示:只需要所搜你刚才设置的数字即可,其他的不需要动了。
redis-server redis9000.conf
redis-server redis9001.conf
redis-server redis9002.conf
redis-server redis9003.conf
redis-server redis9004.conf
redis-server redis9005.conf
查看进程,只有后面带**[cluster]**才算启动成功。
cluster-replica:每个主节点跟随的从节点的个数
redis-cli --cluster create --cluster-replicas 1 192.168.31.33:9000 192.168.31.33:9001 192.168.31.33:9002 192.168.31.33:9003 192.168.31.33:9004 192.168.31.33:9005
简单的去中心化分片集群搭建完毕。
客户端访问:
redis-cli -c -h 127.0.0.1 -p 9000
一定要加上-h,表示使用集群服务,不然启动的也只是普通的。
cluster info 查看所有主机的状态。
cluster nodes 查看所有的节点信息。
info 查看节点内存、cpu、key数量等信息
进入后添加数据,发现会自动更换端口,说明片区划分成功。
1 需要了解的知识点 1.1 offset(偏移量) 定义:元素在屏幕上占用的所有的可见...
前言 上一章 我们在控制台中基本的了解了FluentValidation是如何简洁,优雅的完...
在WEB开发中.我们可能都习惯使用下面的代码来获取客户端的IP地址: C#代码 复制代...
git push时终端报错: error: RPC failed; HTTP 413 curl 22 The requested URL ...
由于最近在做某些日志表的清理工作,会用到定时任务,所以这里也简单介绍一下mys...
以前只知道用a标签的name属性来跳转,今天才知道还可以用id。 不知道还有没有其...
早期版本synchronized性能较低的原因 在早期版本中,synchronized是一种重量级锁...
为了提高用户体验和易用度,一些设计师会对网页中用户经常用的东西进行优化,比...
经常遇到a标签有一个样式,是显示一张图片,但标签中写有文字,又想让文字隐藏,...
01唯有文件得人心 当一个女生让你替她抓100只萤火虫,她一定不是为了折磨你,而...