2 - 部署Redis集群架构

这篇具有很好参考价值的文章主要介绍了2 - 部署Redis集群架构。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


环境:
6台集群服务器 51-56 :
安装Redis软件 初始化配置
停止Redis服务
修改服务使用的ip地址是eth0接口的地址(不需要设置密码和修改服务使用的端口号)
启动Redis服务
2 - 部署Redis集群架构,数据库,redis,架构,数据库

部署Redis集群

部署管理主机

第一步 准备ruby脚本的运行环境

第二步 创建脚本

第三步 查看脚本帮助信息

]# yum -y install rubygems ruby
]# gem install redis-3.2.1.gem
]# mkdir /root/bin # 创建命令检索目录
]# tar -zxvf redis-4.0.8.tar.gz
]# cp redis-4.0.8/src/redis-trib.rb /root/bin/ # 创建管理集群脚本
]# chmod +x /root/bin/redis-trib.rb
]# redis-trib.rb help # 查看命令帮助

配置6台Redis服务器

重要说明:内存里不允许有数据 不能设置连接密码(如果有要清除)

第一步 修改配置文件启用集群功能

[root@redisA ~]# vim /etc/redis/6379.conf //修改配置文件
bind 192.168.4.51        //修改ip
port 6351        //修改端口(可选配置)
cluster-enabled yes     //启用集群功能
cluster-config-file nodes-6379.conf //存储集群信息的配置文件
cluster-node-timeout 5000        //集群节点通信超时时间

第二步 重启redis服务

]# redis-cli -h 192.168.4.52 -p 6379 shutdown
]# /etc/init.d/redis_6379 start

第三步 查看Redis-server进程状态(看到服务使用2个端口号为成功)

[root@redisA ~]# netstat -utnlp  | grep redis-server
tcp  0  0 192.168.4.51:6351  0.0.0.0:*   LISTEN      21201/redis-server  
tcp  0  0 192.168.4.51:16351   0.0.0.0:*   LISTEN   21201/redis-server   

创建集群

在管理主机mgm57执行创建集群的命令

创建集群的命令格式

# --replicas 指定从服务器的台数(指定每个主服务器有几台从服务器)
# 创建集群时,会把前3台服务器配置为主服务器,剩下的其他主机全部做从服务器
]# redis-trib.rb create --replicas 数字 ip地址:端口 ip地址:端口 。。。
并给主服务器平均分配hash slots

2 - 部署Redis集群架构,数据库,redis,架构,数据库
2 - 部署Redis集群架构,数据库,redis,架构,数据库
创建集群失败了 需要删除服务器里面的集群创建信息 每台都要删除

redis-cli -h 192.168.4.51
> cluster reset

如果所有的Redis服务都启用了集群功能 内存里也没有数据 也没设置连接密码 还是创建失败 可能是物理内存不足

查看集群信息

# 查看统计信息
[ mgm57 ~]# redis-trib.rb info 192.168.4.51:6351
# 查看详细信息
[ mgm57 ~]# redis-trib.rb check 192.168.4.51:6351

2 - 部署Redis集群架构,数据库,redis,架构,数据库

访问集群存取数据

命令格式(连接集群中的任意一台服务器都可以查询数据和存储数据)
-c 连接集群中的主机 使用集群算法存储数据
redis-cli -c -h redis服务器的ip -p 端口号

在客户端连接集群中的主机

说明:向集群中的主机存储数据一次只能存储一个 变量 集群算法每次只有一个计算结果
2 - 部署Redis集群架构,数据库,redis,架构,数据库

集群管理

环境准备:创建2台新虚拟机 58 59
分别运行redis服务切启用了集群功能
192.168.4.58 主机redis服务的端口6379 服务使用的地址 192.168.4.58
192.168.4.59 主机redis服务的端口6379 服务使用的地址 192.168.4.59

向集群里添加新服务器

说明:什么情况下需要向集群里添加新主机 (添加master角色):
扩大内存空间(添加master角色服务器)
为了保证服务的可靠性(给主服务器添加多个从服务器)

  1. 添加master角色的服务器
    把58添加到集群做master服务器
1.58运行redis服务 且启用了集群功能,redis服务的端口6379 服务使用的地址192.168.4.58
2.在管理主机mgm57如下操作
	把host58主机添加到集群
redis-trib.rb add-node 192.168.4.58:6379 192.168.4.51:6379 (第二个是集群中任意主机)
出现 ok 成功的
	分配hash slots(master角色的服务器没有hash slots得不到存储数据机会)
redis-trib.rb reshard 集群中已有主机的ip:端口
第一个问题:移除多少个槽 
第二个问题:把这些槽给哪些主数据库服务器
第三个问题:提供这些槽的主机的id all(表示从当前所有主服务器一起提供4096个槽给58主机)
	查看集群信息(查看到新的主服务器且有hash slots为成功)
redis-trib.rb info 192.168.4.56:6379

2 - 部署Redis集群架构,数据库,redis,架构,数据库

  1. 添加slave角色的服务器
    说明:从角色服务器的数据是master服务器同步过来的数据 所以slave角色的服务器不需要分配hash slots 只需要把主机添加到集群做slave服务器就可以了
redis-trib.rb add-node --slave 新主机ip:端口 集群中已有的主机ip:端口
# 需求:把redis59添加到集群里 做58的slave服务器
具体操作如下:
1.在59主机运行redis服务且启用了集群功能
2.在管理主机做如下操作:
	把59添加到集群里 做slave服务器 会自动做从服务器最少的主服务器的从
redis-trib.rb add-node --slave 192.168.4.59:6379 192.168.4.56:6379
	查看集群信息(58有一个slave服务器)
	连接59查看数据(会自动同步)

2 - 部署Redis集群架构,数据库,redis,架构,数据库

把服务器移除集群

移除slave角色的主机

命令格式:redis-trib.rb del-node 集群中任意主机ip:端口 被移除主机的id
说明:slave角色的主机没有hash槽直接移除即可 
		主机被移除集群后 redis服务会自动停止
[root@mgm57 ~]# redis-trib.rb  info  192.168.4.51:6351
192.168.4.55:6355 (2d343a9d...) -> 3 keys | 4096 slots | 1 slaves.
192.168.4.53:6353 (9e44139c...) -> 3 keys | 4096 slots | 1 slaves.
192.168.4.52:6352 (324e05df...) -> 2 keys | 4096 slots | 1 slaves.
192.168.4.58:6358 (4fe1fa46...) -> 5 keys | 4096 slots | 0 slaves.//58主机,没有从服务器
[OK] 13 keys in 4 masters.
0.00 keys per slot on average.

移除master角色的主机

说明:master角色的服务器会占用hash 要先释放hash 在执行移除主机的命令
第一步:释放hash slots(再次执行reshard命令)
[root@mgm57 ~]# redis-trib.rb  reshard 192.168.4.53:6353
How many slots do you want to move (from 1 to 16384)?4096 //移除4096个数槽
What is the receiving node ID?  bc5c4e082a5a3391b634cf433a6486c867cfc44b 
    //要移动给谁的id即目标主机(这里可以随机写一个master的ID)  
Source node #1: c5e0da48f335c46a2ec199faa99b830f537dd8a0
//从谁那移动即源主机(这里写4.58的ID)  
Source node #2:done           //设置完毕
...
    Moving slot 12282 from c5e0da48f335c46a2ec199faa99b830f537dd8a0
    Moving slot 12283 from c5e0da48f335c46a2ec199faa99b830f537dd8a0
    Moving slot 12284 from c5e0da48f335c46a2ec199faa99b830f537dd8a0
    Moving slot 12285 from c5e0da48f335c46a2ec199faa99b830f537dd8a0
    Moving slot 12286 from c5e0da48f335c46a2ec199faa99b830f537dd8a0
    Moving slot 12287 from c5e0da48f335c46a2ec199faa99b830f537dd8a0
Do you want to proceed with the proposed reshard plan (yes/no)?yes //提交
... 
[root@mgm57 ~]# redis-trib.rb  info  192.168.4.51:6351
192.168.4.55:6355 (2d343a9d...) -> 3 keys | 4096 slots | 1 slaves.
192.168.4.53:6353 (9e44139c...) -> 3 keys | 4096 slots | 1 slaves.
192.168.4.52:6352 (324e05df...) -> 2 keys | 4096 slots | 1 slaves.
192.168.4.58:6358 (4fe1fa46...) -> 0 keys | 0 slots    | 0 slaves. //零个槽
[OK] 13 keys in 4 masters.
0.00 keys per slot on average.
第二步:移除主机
[root@mgm57 ~]# redis-trib.rb del-node 192.168.4.53:6353 \ 
 c5e0da48f335c46a2ec199faa99b830f537dd8a0    //删除谁+删除的id
>>> Removing node e081313ec843655d9bc5a17f3bed3de1dccb1d2b from cluster 192.168.4.51:6351
>>> Sending CLUSTER FORGET messages to the cluster...
>>> SHUTDOWN the node.

扩展

平均分配当前所有主服务器的hash slots

redis-trib.rb rebalance 任意主机:端口

把移除的主机再次添加到集群里

1.清除数据 (在redis本机操作)
redis-cli -h 192.168.4.58 -p 6379
> cluster info
> cluster reset # 清空
	
2.在管理主机执行添加命令
3.查看是否添加成功

把集群中的主机恢复为独立的数据库服务器

1.停止服务
2.注释掉配置文件中的集群功能
3.清空数据库目录
4.启动服务
/etc/init.d/redis_6379 start 
5.连接服务查看不到集群信息 也没有数据
redis-cli -h 192.168.4.53 -p 6379

2 - 部署Redis集群架构,数据库,redis,架构,数据库文章来源地址https://www.toymoban.com/news/detail-817970.html

到了这里,关于2 - 部署Redis集群架构的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C++集群聊天服务器 muduo+nginx+redis+mysql数据库连接池 笔记 (下)

    C++集群聊天服务器 网络模块+业务模块+CMake构建项目 笔记 (上)-CSDN博客 https://blog.csdn.net/weixin_41987016/article/details/135991635?spm=1001.2014.3001.5501 C++集群聊天服务器 数据模块+业务模块+CMake构建项目 笔记 (上)-CSDN博客 https://blog.csdn.net/weixin_41987016/article/details/136007616?spm=1001.2014.

    2024年02月19日
    浏览(91)
  • 2 - 部署Redis集群架构

    环境: 6台集群服务器 51-56 : 安装Redis软件 初始化配置 停止Redis服务 修改服务使用的ip地址是eth0接口的地址(不需要设置密码和修改服务使用的端口号) 启动Redis服务 第一步 准备ruby脚本的运行环境 第二步 创建脚本 第三步 查看脚本帮助信息 重要说明:内存里不允许有数据

    2024年01月23日
    浏览(35)
  • Redis缓存数据库

    目录 一、概述 1、Redis  2、Redis的安装 Redis Windows环境设置 3、String: 字符串 3.1、字符串 3.2、数值 3.3、bitmap 4、Hash: 散列 5、List: 列表 6、Set: 集合 7、Sorted Set: 有序集合 常识: 磁盘:1.寻址:ms(毫秒)2.带宽:MB/s 内存:1.寻址:ns    (纳秒) 2.带宽:GB/s 秒--毫秒--微妙--纳秒

    2024年02月04日
    浏览(62)
  • Redis内存数据库

    Redis内存数据库 NoSQL数据库简介 Redis简介 Redis应用场景 windows下安装和使用Redis 在linux下安装redis Redis数据可视化RedisDesktopManager Redis配置 Redis 数据类型 Redis 字符串(String) Redis 哈希(Hash) Redis 列表(List) Redis 集合(Set) Redis 有序集合(sorted set) Redis key命令 Redis连接命令 Redis服务器命令

    2024年02月09日
    浏览(43)
  • 1 - 搭建Redis数据库服务器|LNP+Redis

    数据库服务软件分为2类: 关系型数据库服务软件 简称 RDBMS 按照预先设置的组织结构 将数据存储在物理介质上 数据之间可以做关联操作 非关系型数据库服务软件 简称 NoSQL 不仅仅是SQL 不需要预先定义数据存储结构 每条记录可以有不同的数据类型和字段个数 只需要 key valu

    2024年01月25日
    浏览(58)
  • 126、高频Redis面试题:如何保证Redis和数据库数据一致性

    问题:如果数据库中的某条数据放入缓存后,又马上被更新了,那我们应该如何更新缓存 缺点: 如果先更新缓存成功,在更新数据库的时候失败,这时候会导致数据不一致;缓存的作用是不是临时将我们数据保存在内存,便于提高查询速度;但是如果某条数据在数据库中都

    2024年02月13日
    浏览(43)
  • Redis 数据库高可用

    (1)在web服务器中,高可用是指服务器可以正常访问的时间,衡量的标准是在多长时间内可以提供正常服务(99.9%、99.99%、99.999%等等)。 (2)在Redis中,保证提供正常服务(如主从分离、快速容灾技术),还需要考虑数据容量的扩展、数据安全不会丢失等。 实现高可用的技

    2024年02月15日
    浏览(37)
  • Redis缓存数据库(四)

    目录 一、概述 1、Redis Sentinel 1.1、docker配置Redis Sentinel环境 2、Redis存储方案 2.1、哈希链 2.2、哈希环 3、Redis分区(Partitioning)  4、Redis面试题 Redis Sentinel为Redis提供了 高可用解决方案 。实际上这意味着使用Sentinel可以部署一套Redis, 在没有人为干预的情况下去应付各种各样的失

    2024年02月05日
    浏览(55)
  • Redis 数据库 NoSQL

    目录 一、NoSQL 二、为什么会出现NoSQL技术 三、NoSQL的类别 键值(Key-Value)存储数据库 列存储数据库 文档型数据库 图形(Graph)数据库 四、NoSQL适应场景 五、在分布式数据库中CAP原理 1、CAP 2、BASE NoSQL(Not Only SQL)即不仅仅是SQL,泛指非关系型的数据库,它可以作为关系型数

    2024年02月12日
    浏览(45)
  • 【后端面经-数据库】Redis详解——Redis基本概念和特点

    目录 1. Redis基本概念 2. Redis特点 2.1 优点 2.2 缺点 3. Redis的应用场景 面试模拟 参考资料 声明:Redis的相关知识是面试的一大热门知识点,同时也是一个庞大的体系,所涉及的知识点非常多,如果用一篇文章罗列,往往会陷入知识海洋中无法感知其全貌,因此,这段时间我会试

    2024年02月13日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包