【网络技术联盟站】centos7.6环境下redis5.0.8集群搭建文档
时间:2022-07-28
本文章向大家介绍【网络技术联盟站】centos7.6环境下redis5.0.8集群搭建文档,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一、做基础配置
a) 首先创建3个空文件
mkdir -p /server/redis_cluster/7001/data
mkdir -p /server/redis_cluster/7002/data
mkdir -p /server/redis_cluster/7003/data
b) 把redis.conf拷贝到/server/redis_cluster/7001
cp /server/redis-5.0.8/redis.conf /server/redis_cluster/7001
c) 修改redis.conf(不同节点配置文件端口好不同)
#设置端口号
port 7001
#数据存放位置,必须要指定
dir /server/redis_cluster/7001/data
#启动集群模式
cluster-enabled yes
#集群节点信息文件
cluster-config-file nodes-7001.conf
cluster-node-timeout 5000
#去掉bind绑定访问ip信息
bind 192.168.40.10
#关闭保护模式
protected-mode no
#开启AOF模式,默认的持久化上RDB
appendonly yes
d) 实例
port 7001
#端口7001,7002,7003
bind 本机ip
#默认ip为192.168.40.10需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,无法创建集群
daemonize yes
#redis后台运行
pidfile /var/run/redis_7001.pid
#pidfile文件对应7001,7002,7003
cluster-enabled yes
#开启集群 把注释#去掉
cluster-config-file nodes_7000.conf
#集群的配置 配置文件首次启动自动生成 7001,7002,7003
cluster-node-timeout 15000
#请求超时 默认15秒,可自行设置
appendonly yes
#aof日志开启 有需要就开启,它会每次写操作都记录一条日志
e) 替换redis.conf里的端口号
vim /server/redis_cluster/7002/redis.conf
:%s/7001/7002/g
vim /server/redis_cluster/7003/redis.conf
:%s/7001/7003/g
二、 首先创建3个空文件
mkdir -p /server/redis_cluster/7004/data
mkdir -p /server/redis_cluster/7005/data
mkdir -p /server/redis_cluster/7006/data
三、 把redis.conf拷贝到/server/redis_cluster/7004
cp /server/redis-5.0.8/redis.conf /server/redis_cluster/7004
a) 编辑7004/redis.conf
#//设置端口号
port 7004
#数据存放位置,必须要指定
dir /server/redis_cluster/7004/data
#启动集群模式
cluster-enabled yes
#集群节点信息文件
cluster-config-file nodes-7004.conf
cluster-node-timeout 5000
#去掉bind绑定访问ip信息
bind 192.168.40.11
#关闭保护模式
protected-mode no
#开启AOF模式,默认的持久化上RDB
appendonly yes
b) 拷贝7004节点的conf文件到其他节点并批量替换节点端口号
vim /server/redis_cluster/7005/redis.conf
:%s/7004/7005/g
vim /server/redis_cluster/7006/redis.conf
:%s/7004/7006/g
四、 启动redis服务
redis-server /server/redis_cluster/7001/redis.conf
redis-server /server/redis_cluster/7002/redis.conf
redis-server /server/redis_cluster/7003/redis.conf`
redis-server /server/redis_cluster/7004/redis.conf
redis-server /server/redis_cluster/7005/redis.conf
redis-server /server/redis_cluster/7006/redis.conf
五、 查看是否有进程
ps -ef | grep redis
六、 创建集群
a) 命令格式
redis-cli -a *** --cluster create 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006 --cluster-replicas 1
-a *** 密码 如果redis.conf中配置了密码创建集群时需要添加
--cluster-replicas 1 从节点个数
b) 使用create-cluster搭建
只创建主节点(不包含slave节点)
redis-cli --cluster create 192.168.40.10:7001 192.168.40.10:7002 192.168.40.10:7003 --cluster-replicas 0
c) 查看192.168.40.10:7001节点ID
redis-cli --cluster check 192.168.40.10:7001
192.168.40.10:7001 (603f34b6...) -> 0 keys | 5461 slots | 0 slaves.
192.168.40.10:7003 (c28c02bc...) -> 0 keys | 5461 slots | 0 slaves.
192.168.40.10:7002 (9103ce33...) -> 0 keys | 5462 slots | 0 slaves.
[OK] 0 keys in 3 masters.
0.00 keys per slot on average.
>>> Performing Cluster Check (using node 192.168.40.10:7001)
M: 603f34b6f1bfa681f1e339bda355f225125488b4 192.168.40.10:7001
slots:[0-5460] (5461 slots) master
M: c28c02bca8611298a01717b0591cadec04c77aad 192.168.40.10:7003
slots:[10923-16383] (5461 slots) master
M: 9103ce333b822ac9e0cac4f1d499e72e149197d3 192.168.40.10:7002
slots:[5461-10922] (5462 slots) master
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
d) 手动添加从节点
redis-cli --cluster add-node 192.168.40.11:7004 192.168.40.10:7001 --cluster-slave --cluster-master-id 603f34b6f1bfa681f1e339bda355f225125488b4
redis-cli --cluster add-node 192.168.40.11:7005 192.168.40.10:7002 --cluster-slave --cluster-master-id 9103ce333b822ac9e0cac4f1d499e72e149197d3
redis-cli --cluster add-node 192.168.40.11:7006 192.168.40.10:7003 --cluster-slave --cluster-master-id c28c02bca8611298a01717b0591cadec04c77aad
七、 验证集群
a) 登录集群节点
./redis-cli -h 192.168.40.10 -p 7001
b) 查看集群状态
192.168.40.10:7001> cluster info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:3
cluster_my_epoch:1
cluster_stats_messages_ping_sent:1478
cluster_stats_messages_pong_sent:1382
cluster_stats_messages_meet_sent:1
cluster_stats_messages_sent:2861
cluster_stats_messages_ping_received:1378
cluster_stats_messages_pong_received:1479
cluster_stats_messages_meet_received:4
cluster_stats_messages_received:2861
c) 查看集群主从关系(根据slave后面的id确定当前节点的主节点是哪个)
192.168.40.10:7001> cluster nodes
c28c02bca8611298a01717b0591cadec04c77aad 192.168.40.10:7003[@17003] master - 0 1598951187016 3 connected 10923-16383
6523aa8a3bf53eae1ef8df25c0f42c820e0af7d6 192.168.40.11:7004@17004 slave 603f34b6f1bfa681f1e339bda355f225125488b4 0 1598951188022 1 connected
32883231bf8908549f1720ab99161738865ec009 192.168.40.11:7005@17005 slave 9103ce333b822ac9e0cac4f1d499e72e149197d3 0 1598951186010 2 connected
d679eba5a795cdd1c6b4722bb5fb33cad60e0c18 192.168.40.11:7006@17006 slave c28c02bca8611298a01717b0591cadec04c77aad 0 1598951187000 3 connected
603f34b6f1bfa681f1e339bda355f225125488b4 192.168.40.10:7001@17001 myself,master - 0 1598951184000 1 connected 0-5460
9103ce333b822ac9e0cac4f1d499e72e149197d3 192.168.40.10:7002@17002 master - 0 1598951185002 2 connected 5461-10922
- 修改prototype使Event支持observe任何对象
- 两个小例子带你看懂什么是比特币分叉和2018必将大热的IFO
- 用c#添加Networkservice对文件夹的写权限
- 游标清除重复数据
- 研究人员警示智能音箱等物联网设备存在较多安全问题
- Tootip小程序,整理一下自己用
- 滴滴电单车--“街兔” 无奈相关域名已被注册
- 联发科将推出两款芯片,拥有AI和人脸识别技术,能和高通叫板吗?
- 谷歌AI黑科技曝光:合成语音与真人声音难以区分
- 小程序是什么?有什么用?
- Aibee融资1.65亿元 曾16.8万元秒下aibee.cn
- 小程序审核攻略
- js checkbox.checked=true在document.body.appendChild(checkbox)前与后赋值
- 吹得飞起的人工智能,2017都摔过哪些跟头?
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android屏幕手势检测的实现代码
- Android开发实现简单的观察者与被观察者示例
- Android开发中4个常用的工具类【Toast、SharedPreferences、网络及屏幕操作】
- Android实现客户端语音动弹界面实例代码
- Android封装MVP实现登录注册功能
- Android5.1系统通过包名给应用开放系统权限的方法
- android 上传aar到私有maven服务器的示例
- Android Studio开发环境搭建教程详解
- android事件总线EventBus3.0使用方法详解
- Android仿淘口令复制弹出框功能(简答版)
- Android实现简单断点续传和下载到本地功能
- Android用MVP实现一个简单的类淘宝订单页面的示例
- Android Bitmap的截取及状态栏的隐藏和显示功能
- 详解Android沉浸式实现兼容解决办法
- AndroidStudio项目打包成jar的简单方法