NoSQL数据库-redis集群搭建

2023-11-10

      NoSQL 002  redis 集群

Redis集群
1 部署管理主机
二 查看集群信息
三 检查集群主机信息
四 集群存储数据工作原理
五 访问集群
*****************************
环境准备

  1. /etc/init.d/redis_6379 stop

  2. Vim /etc/redis/6379.conf
    70 集群节点node地址 192.168.4.51
    93 端口 6351
    815 去注释 cluster-enabled yes -打开集群
    823 去注释默认 cluster-config file
    829 去注释修改 cluster-node-timeout 5000
    501 注释掉 requirepass foobared

  3. Rm -rf /var /lib/redis/6379/*

  4. Vim +43 /etc/init.d/redis_6379
    Ip
    Port
    -h 192.168.4.51 -p 6351

  5. /etc/init.d/redis_6379 start

  6. Redis-cli -h192.168.4.51 -p 6351
    Keys *
    Exit


创建集群
集群存储数据工作原理

Rdis 服务器: 6台
管理主机: 1台 主机51
客户端: 1台  主机50 vim /etc/redis/6379.conf
一部署管理主机
任意一台
51主机部署ruby脚本运行环境
创建管理集群脚本

  1. yum -y install rubygems
  2. gem install redis-3.2.1.gem
    3)Rpm -qa ruby || yum -y install ruby
    4)cp redis-4.0.8/src/redis-trib.rb /root/bin/

5)Mkdir /root/bin          创建命令检索目录
6) Tar -zxvf redis-4.0.8.tar.gz
7) Cd redis-4.0.8/src/
8) Cp redis-trib.rb /root/bin/    创建管理集群脚本 
9) Chmod +x /root/bin/redis-trib.rb

Redis-trib.rb   help

三 检查集群主机信息

创建集群
配置6台
10) 五访问集群redis-trib.rb create --replicas 1 192.168.4.51:6351 192.168.4.52:6352 192.168.4.53:6353 192.168.4.54:6354 192.168.4.55:6355 192.168.4.56:6356
Yes 回车

[OK] All nodes agree about slots configuration.

Check for open slots…
Check slots coverage…
[OK] All 16384 slots covered.

Create --replicas 1 定义每台主库个数
******************(*************
解决报错
/etc/init.d/redis_6379  stop
Rm -rf /var/lib/redis/6379
/etc/init.d/redis_6379 start

**五访问集群************************************
二 查看集群信息
[root@mysql51 ~]# redis-trib.rb info 192.168.4.51:6351
-bash: redis-trib: 未找到命令

[root@mysql51 ~]# redis-trib.rb info 192.168.4.51:6351
192.168.4.51:6351 (fefb4f36…) -> 0 keys | 5461 slots | 1 slaves.
192.168.4.52:6352 (2c3bf8d1…) -> 0 keys | 5462 slots | 1 slaves.
192.168.4.53:6353 (02dd6a76…) -> 0 keys | 5461 slots | 1 slaves.

三 检查集群主机信息
6351.>redis-trib.rb check 192.168.4.51:6351
192.168.4.51:6351> cluster info 查看集群信息
Cluster nodes  查看集群节点信息
***************************************


集群存储数据工作原理
变量名 和 crc16算法 做hash 算法后得到一个数字,数字和%16384屈余,根据余数的值,找对应的redis 服务器存储数据

***************************************五访问集群
在客户端client 可以访问任何一台redis 服务器
[root@client ~]# redis-cli -c -h 192.168.4.51 -p 6351

-c 集群模式

192.168.4.51:6351> set b dc
OK
***********************************
六管理集群
停止master 宕机后对应的slave 会自动被选举为master
原master 启动后,会自动配置为当前master 的 slave

检测集群
在管理主机上
Redis-trib.rb check 192.138.4.53:6353
Redis-trib.rb info 192.168.4.53:6353
故障测试

停掉53
之前53的从服务器自动变成master
********************************
七 添加集群master 服务器

添加master 服务器: 57 
1 添加master 主机
root@mysql51 utils]# redis-trib.rb add-node 192.168.4.57:6357
192.168.4.51:6351
2重新分片
[root@mysql51 utils]# redis-trib.rb reshard 192.168.4.51:6351
How many slots do you want to move (from 1 to 16384)? 4096
What is the receiving node ID? 594abe2eee3eaa8c52d4a38f8bbffdc6452d66a0
Please enter all the source node IDs.
Type ‘all’ to use all the nodes as source nodes for the hash slots.
Type ‘done’ once you entered all the source nodes IDs.
Source node #1:all

3添加slave 服务器
[root@mysql51 utils]# redis-trib.rb add-node --slave 192.168.4.58:6358 192.168.4.51:6351
redis-trib.rb info 192.168.4.52:6352

192.168.4.52:6352 (b1f8c717…) -> 0 keys | 4096 slots | 1 slaves.
192.168.4.53:6353 (37f6940b…) -> 0 keys | 4096 slots | 1 slaves.
192.168.4.51:6351 (99795aed…) -> 0 keys | 4096 slots | 1 slaves.
192.168.4.57:6357 (594abe2e…) -> 0 keys | 4096 slots | 1 slaves.

*平均分片
Redis-trib.rb Rebalance 192.168.4.51:6351
***************************************

1 移除slave57 :

redis-trib.rb del-node 192.168.4.51:6351 a6ac5a052e2915fedb250b37022db0b2ae790f1d(57 的从服务器ID)

redis-trib.rb check 192.168.4.52:6352

vim /etc/redis/6379.conf

2 移除master
redis-trib.rb reshard 192.168.4.57:6357 -释放占用的hash槽 重新分片
释放占用的slots 
-指定移除的slots 个数
-指定接受的slots 主机id
-指定移除的slits 主机id

redis-trib.rb del-node 192.168.4.57:6357 594abe2eee3eaa8c52d4a38f8bbffdc6452d66a0  -移除主机

redis-trib.rb check 192.168.4.52:6352

redis-trib.rb info 192.168.4.52:6352
192.168.4.52:6352 (b1f8c717…) -> 0 keys | 4096 slots | 1 slaves.
192.168.4.53:6353 (37f6940b…) -> 0 keys | 4096 slots | 1 slaves.
192.168.4.51:6351 (99795aed…) -> 0 keys | 8192 slots | 1 slaves.
添加回去  57 
1启服务
2重置集群信息
Mysql 57 > Redis-cli -h 192.168.4.57 -p 6357
6357 > cluster reset
Exit
3 添加主机到集群
Mysql51 >Redis-trib.rb add-node 192.168.4.57:6357 192.168.4.51:6351
4 查看集群信息
Redis-trib.rb info 192.168.4.51:6351


还原成独立数据库服务器

/etc/redis/6379.conf stop
Rm -rf /var/lib/redis/6379/*
815
823
829
/etc/init.d/redis_6379 start

Redis-cli -h192.168.4.57 -p 6357
6357 > cluster info
This instance Cluster support disabled
/etc/init.d/redis_6379 stop
181 vim /etc/redis/6379.conf
182 /etc/init.d/redis_6379 start
184 ss -ntulp |grep redis-server

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NoSQL数据库-redis集群搭建 的相关文章

  • Java课题笔记~ SpringMVC概述

    1 1 SpringMVC简介 SpringMVC 也叫Spring web mvc 是Spring 框架的一部分 在Spring3 0 后发布的 1 2 SpringMVC的优点 基于MVC 架构 基于 MVC 架构 功能分工明确 解耦合

随机推荐

  • 性能测试指标全解

    最近在公司做压测时 对于各个监控工具的监控指标一脸蒙 有时候不清晰 有时候理解错误 于是 恶补基础知识 希望对广大网友有所帮助 一 性能测试指标 1 在线用户数 此指标指的是某个时间段内 在服务器上保持登录状态的用户数 在线用户数不等同于并
  • 【Go】字符串拼接

    在 Go 语言中 常见的字符串拼接方式包括 拼接 fmt Sprintf拼接 strings Join拼接 buffer Builderbuffer WriteString拼接和strings Builder WriteString拼接 1
  • 什么是to B 业务

    引言 To B or Not to B there is not a question 对于企业而言 数据分析的作用主要体现在三大领域 1 是对业务的改进优化 2 是帮助业务发现机会 3 是创造新的商业价值 数据分析最重要的是基于对业务的理
  • 常见的反爬手段、原理以及应对思路

    应对反爬的主要思路就是 尽可能的去模拟浏览器 浏览器在如何操作 代码中就如何去实现 1 通过User Agent反爬 爬虫发送请求时 请求头中默认没有User Agent 或者提供非正常的UA 应对思路 在请求时添加UA 具体应对 requ
  • 用JAVA实现网络数据包嗅探

    用JAVA实现网络数据包嗅探 网络嗅探可是说是网络开发的一个基础 SNIFFER IDS都是在这个基础上开发的 一个提供了网络分析 一个提供了入侵检测 实现一个网络嗅探程序到底有多难呢 可以很复杂 也可以很简单 在WINDOWS平台下 大多
  • 框架分析(8)-React Native

    框架分析 8 React Native 专栏介绍 React Native 特性和优势 跨平台开发 热更新 原生性能 组件化开发 第三方库支持 社区支持 限制和挑战 性能问题 第三方库兼容性 学习曲线 总结 专栏介绍 link 主要对目前市
  • 大数据开发:数仓建模常见数据模型

    在数据仓库搭建的过程当中 根据需求合理地选择数据模型 是非常关键的一个环节 对于数仓建模 很多人说不就是建表吗 哪有那么复杂 事实上 这是非常错误的思想 今天的大数据开发分享 我们来聊聊数仓建模常见的几种数据模型 目前来说 市场上主流的数据
  • Tomcat性能优化详细教程

    首先 是客户端访问tomcat的一个过程 如图所示 图中间虚线框部分是 Apache基金下的服务器来做静态资源处理的 而这部分需要花费大量时间 当用nginx和tomcat做企业级集群的时候 需要禁用掉AJP协议 一 准备工作 1 配置管理
  • ORACLE在分区表的分区字段上进行更新的方法

    有些业务表 由于数据量比较大 例如成交表 因此 为了方便查询 通常在一个日期字段上对表进行分区用以提高查询效率 但是一旦对表进行分区后 如果要对表中的记录更新 如果更新字段设计到了分区字段 那么update语句就会出错 ORA 10442
  • 学习TCP

    参考知乎 实战 我用 Wireshark 让你 看见 TCP 知乎 zhihu com 学习工具 tcpdump linux wireshark windows dump 转储 json dump a fp 转储到文件 动态数据转储为静态文
  • 关于基本功能测试用例,到底是传统的表格(Excel)形式好还是思维导图(Xmind、MindManager等)模式好?

    这个问题先抛出我的观点 具体选择哪种形式更好 需要根据具体情况来考虑 如果测试用例较为简单 可以选择表格形式 如果测试用例较为复杂 可以选择思维导图形式 但实际工作中 二者一般是结合使用的 想把握好这个度 就需要了解两种用例形式的优缺点 所
  • Windows batch编程常用语法及命令介绍

    1 echo 和 回显命令 关闭单行回显 echo off 从下一行开始关闭回显 echo off 从本行开始关闭回显 一般批处理第一行都是这个 echo on 从下一行开始打开回显 echo 显示当前是 echo off 状态还是 ech
  • 总结5种比较高效常用的排序算法

    1 概述 本文对比较常用且比较高效的排序算法进行了总结和解析 并贴出了比较精简的实现代码 包括选择排序 插入排序 归并排序 希尔排序 快速排序等 算法性能比较如下图所示 2 选择排序 选择排序的第一趟处理是从数据序列所有n个数据中选择一个最
  • 基于stm32驱动bh1750光照传感器的一种超简单的编程方法

    基于stm32驱动bh2750光照传感器的一种超简单的编程方法 目录 基于stm32驱动bh1750光照传感器的一种超简单的编程方法 前言 一 搭载RT thread需要的环境 二 获取RT thread官方源码 并新建一个工程 三 下载b
  • python 编码规范-命名规范

    常见的命名规则 匈牙利命名法 以一至多个小写字母表示其属性 类型 后接首字母大写的一至多个单词表示其作用描述 比如 m bCanRun 其中 m 表示其为成员变量 b 表示其类型为布尔值 CanRun 表示其代表是否可以检查的含义 驼峰命名
  • Elasticsearch 学习总结笔记

    笔记整理自 b站尚硅谷课程 课程地址 1 Elasticsearch概述 本文主要是对 ES 7 X版本进行总结 现在已经有8版本了 感兴趣的可以去查看官方文档学习 地址 ES中文文档 1 1 Elasticsearch是什么 Elatic
  • Java接口和多态练习

    需求 定义手机类 行为 打电话 发短信 定义接口IPlay 行为 玩游戏 定义旧手机类继承手机类 行为 继承父类的行为 定义新手机继承手机类实现IPlay接口 行为 继承父类的行为 重写玩游戏方法 定义测试类 在测试类中定义一个 用手机的方
  • arcgis 去除影像黑色边框(nodata)

    目的 加载进arcmap的tif数据发现有黑边 想要去除黑边 问题 1 在属性中设置 将NoData显示为绿色 发现对黑色区域无效 2 使用 识别 功能发现黑色区域为 nodata 而绿色区域没有数值 为空值 原理 需要知道没有数据与显示
  • Spring 缓存注解@Cacheable的用法

    在Spring中通过获取MemCachedClient来实现与memcached服务器进行数据读取的方式 不过 在实际开发中 我们往往是通过Spring的 Cacheable来实现数据的缓存的 所以 本文给大家详细介绍一下 Cacheabl
  • NoSQL数据库-redis集群搭建

    NoSQL 002 redis 集群 Redis集群 1 部署管理主机 二 查看集群信息 三 检查集群主机信息 四 集群存储数据工作原理 五 访问集群 环境准备 etc init d redis 6379 stop Vim etc redi