搭建redis集群
redis的安装此篇不做说明,可以参考:https://www.cnblogs.com/lm970585581/p/9909957.html
本次使用三台linux服务器,每台服务器上使用7000,7001两个端口
创建配制节点
mkdir -p /usr/local/redis/redis_cluster/7000 mkdir -p /usr/local/redis/redis_cluster/7001
cp /root/redis/redis.conf /usr/loca/redis/redis_cluster/7000 此配置文件可以在解压redis后的文件夹根目录中找到 cp /root/redis/redis.conf /usr/loca/redis/redis_cluster/7001
修改redis.conf
port 7000 //端口根据对应的文件夹去配制端口 7000,7001
注释掉 bind 本机ip
daemonize yes //redis后台运行
pidfile /var/run/redis_7000.pid //pidfile文件对应7000,7001
cluster-enabled yes //开启集群 把注释#去掉
cluster-config-file nodes_7000.conf //集群的配置 配置文件首次启动自动生成 7000,7001
cluster-node-timeout 15000 //请求超时 默认15秒,可自行设置
appendonly yes //aof日志开启 有需要就开启,它会每次写操作都记录一条日志
requirepass redis //设置密码
将redis安装目录整体复制到另外两台服务器上
使用scp -r /usr/local/redis root@ip:/usr/local命令进行复制,可以保证复制后权限不变
复制src目录中的redis-trib.rb 到/usr/local/redis/bin目录
cp /root/redis/src/redis-trib.rb /usr/local/redis/bin
安装ruby环境
yum install -y ruby yum install -y rubygems
安装ruby的包
gem install redis-4.0.0.rc1.gem
如果不成功需要去下载后安装 下载地址 https://rubygems.org/gems/redis/versions/4.0.0.rc1 https://rubygems.org/downloads/redis-4.0.0.rc1.gem
安装命令:gem install -l ./redis-4.0.0.rc1.gem
启动每台服务器的各个节点
/usr/local/redis/bin/redis-server /usr/local/redis/redis_cluster/7000/redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis/redis_cluster/7001/redis.conf
检查各节点是否启动
查看进程 ps -ef | grep redis
查看端口 netstat -tnlp | grep redis
创建集群
./redis-trib.rb create --replicas 1 192.168.220.128:7000 192.168.220.128:7001 192.168.220.129:7000 192.168.220.129:7001 192.168.220.130:7000 192.168.220.130:7001
★★★★注意有坑: 设置ruby脚本执行密码vim /usr/local/rvm/gems/ruby-2.5.1/gems/redis-4.0.11/lib/redis/client.rb密码必须和redis的requirepass设置密码的一致
注意:client.rb路径可以通过find命令查找:find / -name 'client.rb'
配置防火墙端口
各个redis集群节点的通信端口为应用端口前面加1
以本次为例,我们要开放7001 17001 7002 17002 4个端口
firewall-cmd --add-port=7001/tcp --permanent
..
..
firewall-cmd --reload
验证集群
redis-cli -h ip -p 端口 -a 密码 -c
- Kafka集群安装
- 知其所以然之永不遗忘的算法
- ZOOKEEPER集群搭建及测试
- 【Python环境】Scikit-Learn:开源的机器学习Python模块
- 【Python环境】可爱的 Python: 自然语言工具包入门
- 电脑静音工作,又听不到12306的来票音乐,纠结啊 !但春节前工作多任务重,不能安心工作,就动手做个“无声购票弹窗”工具吧!
- .net访问PostgreSQL数据库发生“找不到函数名”的问题追踪
- “领域驱动开发”实例之旅(1)--不一样的开发模式 一、分析业务需求。 二、设计领域对象模型 三、测试领域对象模型 四、设计业务处理类 五、设计Entity和Vi
- Java基础——左移和右移
- 【Python环境】利用 Python、SciKit 和文本分类来实现行为分析
- LJMM平台( Linux +Jexus+MySQL+mono) 上使用MySQL的简单总结
- 判断两个单链表是否相交(有环、无环两种)
- 【数据科学家】SparkR:数据科学家的新利器
- KMP算法浅析
- 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 数组属性和方法
- PHP5.5基于mysqli连接MySQL数据库和读取数据操作实例详解
- python–shutil移动文件到另一个路径的操作
- PHP正则表达式处理函数(PCRE 函数)实例小结
- yii2的restful api路由实例详解
- PHP实现的权重算法示例【可用于游戏根据权限来随机物品】
- 用Python爬取LOL所有的英雄信息以及英雄皮肤的示例代码
- Python操作MySQL数据库的示例代码
- 解决pyinstaller 打包exe文件太大,用pipenv 缩小exe的问题
- PyCharm中配置PySide2的图文教程
- 浅析Python 简单工厂模式和工厂方法模式的优缺点
- thinkPHP利用ajax异步上传图片并显示、删除的示例
- 对python中list的五种查找方法说明
- Laravel框架查询构造器简单示例
- PHP调用微博接口实现微博登录的方法示例
- Python使用pyexecjs代码案例解析