linux下redis伪集群安装

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: Redis集群伪分布式安装

Redis集群伪分布式安装


一、redis集群简单介绍


1.1.1 redis-cluster架构图


20180222182105801.png


redis-cluster把所有的物理节点映射到[0-16383]slot上,cluster 负责维护node<->slot<->value


Redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value 时,redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点


微信图片_20220524164427.jpg

Key:a


计算a的hash值,例如值为100,100这个槽在server1上,所以a应该放到server1.

 

Key:hello


Hash值:10032,此槽在server2上。Hell可以应该存在server2.


1.1.2 redis-cluster投票:容错


微信图片_20220524164933.jpg


(1)领着投票过程是集群中所有master参与,如果半数以上master节点与master节点通信超过(cluster-node-timeout),认为当前master节点挂掉.


(2):什么时候整个集群不可用(cluster_state:fail)?


a:如果集群任意master挂掉,且当前master没有slave.集群进入fail状态,也可以理解成集群的slot映射[0-16383]不完成时进入fail状态.


ps : redis-3.0.0.rc1加入cluster-require-full-coverage参数,默认关闭,打开集群兼容部分失败.


b:如果集群超过半数以上master挂掉,无论是否有slave集群进入fail状态.


ps:当集群不可用时,所有对集群的操作做都不可用,收到((error) CLUSTERDOWN The cluster is down)错误


二、安装集群


2.1.1准备工作


1、安装ruby---------yum install ruby


2、安装rubygems(用于对 Ruby组件进行打包的 Ruby 打包系统)---------yum install rubygems


3、安装redis-3.0.0.gem ------------------gem install redis-3.0.0.gem


2.2.2、安装


1、在 /usr/local/目录下手动建一个redis-cluster文件夹 ---------------mkdir redis-cluster


2、复制redis安装目录的bin文件到redis-cluster文件命名为redis01----------------[root@localhost redis]# cp -r bin ../redis-cluster/redis01。(bin文件在单机版安装那个有,不明白的看那个)。


3、进入redis01删除dump.rdb文件----------[root@localhost redis01]# rm -rf dump.rdb。


4、修改redis01里的redis.conf 打开cluster-enabled yes的注释

20180222183018475.png


5、创建6个redis实例(个数不限,但是要超过三个,并且偶数一主一备)

20180222183030702.png


6、把创建集群的脚本复制到集群目录redis-cluster下(将redis-3.0.0.tar.gz解压后的文件中叫src的文件中的.rb后缀文件复制到集群目录)。


[root@localhost src]# cp *.rb /usr/local/redis-cluster/


7、将所有端口6379依次改成7001-7006,然后启动6个redis实例


脚本启动所有的redis

20180222183043641.png


8、创建集群


./redis-trib.rb create --replicas 1 192.168.220.128:7001 192.168.220.128:7002 192.168.220.128:7003 192.168.220.128:7004 192.168.220.128:7005  192.168.220.128:7006


创建完成后是这个样子

20180222183109563.png


三、测试集群


20180222183131261.png


这样集群搭建成功了,在7002的端口上赋值,7003端口也能取到值。


最后启动关闭脚本,关闭redis集群。


最后写的有点繁琐,因为当时自己一点不懂,慢慢学过来,希望能帮到像我这样一开始一点都不懂的人。



相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
9天前
|
NoSQL Linux Redis
06- 你们使用Redis是单点还是集群 ? 哪种集群 ?
**Redis配置:** 使用哨兵集群,结构为1主2从,加上3个哨兵节点,总计分布在3台Linux服务器上,提供高可用性。
18 0
|
10天前
|
缓存 Linux 测试技术
安装【银河麒麟V10】linux系统--并挂载镜像
安装【银河麒麟V10】linux系统--并挂载镜像
61 0
|
10天前
|
Linux C语言
linux yum安装ffmpeg 图文详解
linux yum安装ffmpeg 图文详解
28 0
|
10天前
|
NoSQL Linux Redis
linux 下和win下安装redis 并添加开机自启 图文详解
linux 下和win下安装redis 并添加开机自启 图文详解
15 0
|
10天前
|
Linux
linux yum 安装rar和unrar
linux yum 安装rar和unrar
35 0
|
17天前
|
负载均衡 监控 NoSQL
Redis的集群方案有哪些?
Redis集群包括主从复制(基础,手动故障恢复)、哨兵模式(自动高可用)和Redis Cluster(官方分布式解决方案,自动分片和容错)。此外,还有如Codis、Redisson和Twemproxy等第三方工具用于代理和负载均衡。选择方案需考虑应用场景、数据规模和并发需求。
17 2
|
3天前
|
关系型数据库 MySQL Linux
Linux联网安装MySQL Server
Linux联网安装MySQL Server
13 0
|
10天前
|
Java Linux 开发工具
linux jdk的安装
linux jdk的安装
16 0
|
10天前
|
NoSQL Linux PHP
php添加redis扩展 linux和windos图文详解 l
php添加redis扩展 linux和windos图文详解 l
3 0
|
17天前
|
NoSQL Java 测试技术
面试官:如何搭建Redis集群?
**Redis Cluster** 是从 Redis 3.0 开始引入的集群解决方案,它分散数据以减少对单个主节点的依赖,提升读写性能。16384 个槽位分配给节点,客户端通过槽位信息直接路由请求。集群是无代理、去中心化的,多数命令直接由节点处理,保持高性能。通过 `create-cluster` 工具快速搭建集群,但适用于测试环境。在生产环境,需手动配置文件,启动节点,然后使用 `redis-cli --cluster create` 分配槽位和从节点。集群动态添加删除节点、数据重新分片及故障转移涉及复杂操作,包括主从切换和槽位迁移。
30 0
面试官:如何搭建Redis集群?