Linux(Centos7)下redis5缓存服务集群分布式搭建
注意:可以查看Redis官网查看集群搭建方式,连接如下
https://redis.io/topics/cluster-tutorial
集群中应该至少有三个节点,每个节点有一备份节点。需要6台服务器。
如果条件有限,可以搭建伪分布式,以下步骤是在一台 Linux 服务器上搭建有6个节点的 Redis集群。
准备工作:安装依赖包
[root@localhost ~]#yum install -y gcc g++ make gcc-c++ kernel-devel automake autoconf libtool make wget tcl vim unzip git
1.创建目录并进入
命令:mkdir /usr/local/redis-cluster
命令:cd /usr/local/redis-cluster
2.下载源码包并解包编译安装
命令:wget http://download.redis.io/releases/redis-5.0.5.tar.gz #安装redis5.0.5版本
命令:tar -zvxf redis-5.0.5.tar.gz #解包
3.进入redis目录里,开始编译并安装
命令:cd redis-5.0.5 #进入目录里如果有这个Makefile就可以编译安装了
命令:make #编译
命令:make install PREFIX=/usr/local/redis #编译安装并将redis放在/usr/local/redis下,这样就可以直接使用redis
好了,现在redis已经安装成功
4.创建6个redis配置文件(注意:6个配置文件不能放在同一个目录之内)
命令:[root@localhost redis-5.0.5]# cp /usr/local/redis-cluster/redis-5.0.5/redis.conf /usr/local/redis/bin
命令:[root@localhost redis-5.0.5]# cd /usr/local/redis
命令:[root@localhost redis]# cp -r /usr/local/redis/bin /usr/local/redis-cluster/redis01
命令:[root@localhost redis]# cd /usr/local/redis-cluster/redis01
命令:[root@localhost redis01]# vim redis.conf #修改配置文件
配置文件的修改路径为:
1)port 7001 #端口
2)cluster-enabled yes #启用集群模式
3)cluster-config-file nodes.conf #设置对应端口,不输入的话就是默认port端口
4)cluster-node-timeout 5000 #超时时间
5)appendonly yes #开启持久化模式
6)daemonize yes #后台运行
7)protected-mode no #非保护模式
8)pidfile /var/run/redis_7001.pid #防止启动多个进程副本,只启动7001
(知识扩展:进程运行后会给.pid文件加一个文件锁,只有获得该锁的进程才有写入权限(F_WRLCK),
把自身的pid写入该文件中,其他试图获得该锁的进程会自动退出。)
9)bind 172.20.10.7 #127.0.0.1改为本机ip地址,可用 ifconfig 或 ip a 查看ip
这样配置文件就已经做好了,接下来保存退出,然后创建其他5个节点
5.创建其他5个节点
命令:cd /usr/local/redis-cluster/ #进入redis目录下
[root@localhost redis-cluster]# cp -r redis01 redis02
[root@localhost redis-cluster]# cp -r redis01 redis03
[root@localhost redis-cluster]# cp -r redis01 redis04
[root@localhost redis-cluster]# cp -r redis01 redis05
[root@localhost redis-cluster]# cp -r redis01 redis06 #将配置目录复制5份
然后修改配置文件:分别修改redis02 ~ redis06 的 redis.conf下的port 和 pidfile
修改内容:
1)port 7001
2)pidfile /var/run/redis_7001.pid
6.启动节点
有两种方法启动
命令:cd /usr/local/redis-cluster
1)分别进入redis01、redis02、...redis06目录,执行: ./redis-server ./redis.conf
2)做一个脚本执行 start-all.sh
脚本内容如下:
cd redis01
./redis-server redis.conf
cd ..
cd redis02
./redis-server redis.conf
cd ..
cd redis03
./redis-server redis.conf
cd ..
cd redis04
./redis-server redis.conf
cd ..
cd redis05
./redis-server redis.conf
cd ..
cd redis06
./redis-server redis.conf
cd ..
然后添加权限执行脚本就行了
命令:chmod u+x start-all.sh #给脚本添加权限
命令:./start-all.sh
然后顺便看一下节点是否启动成功
命令:ps aux | grep redis
7.启动集群
因为我们使用的5.0.0以上的版本的Redis搭建的集群只需要把编译后的redis目录中的这个redis-cli文件拷贝到redis-cluster目录过来就可以了
至于redis-cli在/usr/local/redis-cluster/redis-5.0.5/src下就可以找到,然后复制到/usr/local/redis-cluster下就可以了
命令:cp -r /usr/local/redis-cluster/redis-5.0.5/src/redis-cli /usr/local/redis-cluster
命令:/usr/local/redis-cluster/redis-cli --cluster create 192.168.100.248:7001 192.168.100.248:7002 192.168.100.248:7003 192.168.100.248:7004
192.168.100.248:7005 192.168.100.248:7006 --cluster-replicas 1 #启动命令(注意:根据自己的IP启动)
到这个地方,就做完了redis集群启动成功
8.集群的操作
关闭集群,在create-cluster目录下编写脚本文件:vim shutdown.sh
脚本内容如下:
/usr/local/redis-cluster/redis-cli -c -h 192.168.100.248 -p 7001 shutdown
/usr/local/redis-cluster/redis-cli -c -h 192.168.100.248 -p 7002 shutdown
/usr/local/redis-cluster/redis-cli -c -h 192.168.100.248 -p 7003 shutdown
/usr/local/redis-cluster/redis-cli -c -h 192.168.100.248 -p 7004 shutdown
/usr/local/redis-cluster/redis-cli -c -h 192.168.100.248 -p 7005 shutdown
/usr/local/redis-cluster/redis-cli -c -h 192.168.100.248 -p 7006 shutdown
然后给脚本添加权限并执行此文件
命令:chmod u+x shutdown.sh
命令:./shutdown.sh
查看redis集群状态
命令:ps aux|grep redis
知识扩展:
官方:/usr/local/redis-cluster/redis-cli -a xxx -c -h 192.168.100.248 -p 7001
提示:-a访问服务端密码,-c表示集群模式,-h指定ip地址,-p指定端口号
9.重新启动集群
在start-all.sh脚本的最后添加/usr/local/redis-cluster/redis-cli --cluster create 192.168.100.248:7001 192.168.100.248:7002 192.168.100.248:7003
192.168.100.248:7004 192.168.100.248:7005 192.168.100.248:7006 --cluster-replicas 注意:使用自己本机的IP
然后执行脚本就可以了
命令:./start-all.sh
10.测试集群
在redis-cluster目录下执行
命令:redis01/redis-cli -h 192.168.100.248 -p 7002 -c (注意:用自己的IP)
命令:cluster nodes #查询集群结点信息
命令:cluster info # 查询集群状态信息
(知识扩展:设置主从密码)
需要在redis01~redis06的配置文件里redis.conf修改这两行
masterauth 123456 #主从密码
requirepass 123456 #访问密码
然后重启服务
总结:。。。。。。。。。。。。。。。。。(此处省略一万字)
Linux(Centos7)下redis5缓存服务集群分布式搭建的更多相关文章
- centos7下安装zookeeper&zookeeper集群的搭建
一.centos7下安装zookeeper 1.zookeeper 下载地址 https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/ 2.安装步骤 ...
- Linux(Centos7)下redis5集群搭建和使用
1.简要说明 2018年十月 Redis 发布了稳定版本的 5.0 版本,推出了各种新特性,其中一点是放弃 Ruby的集群方式,改为 使用 C语言编写的 redis-cli的方式,是集群的构建方式复杂 ...
- Linux(Centos7)下redis5安装、部署、开机自启
1.什么是redis redis是用C语言开发的一个开源的高性能键值对(key-value)数据库.它通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止redis支持的键值数据类型如下字符串 ...
- Linux Centos7.5中的RocketMQ集群部署
系统环境 Docker > centos7.5 此镜像已经安装了jdk1.8和maven3.6.0 如果你想知道这个基础镜像的具体情况, 参考此文: https://www.cnblogs.co ...
- centos7下安装部署mongodb集群(副本集模式)
环境需求:Mongodb集群有三种模式: Replica Set, Sharding,Master-Slaver. 这里部署的是Replica Set模式. 测试环境: 这里副本集(Replica ...
- STORM_0004_windows下zookeeper的伪集群的搭建
-----------------------------------------------------START------------------------------------------ ...
- CentOS下RabbitMq高可用集群环境搭建
准备工作 1,准备两台或多台安装有rabbitmq-server服务的服务器 我这里准备了两台,分别如下: 192.168.40.130 rabbitmq01192.168.40.131 rabbit ...
- (2)虚拟机下hadoop1.1.2集群环境搭建
hadoop集群环境的搭建和单机版的搭建差点儿相同,就是多了一些文件的配置操作. 一.3台主机的hostname改动和IP地址绑定 注意:以下的操作我都是使用root权限进行! (1)3太主机的基本网 ...
- 分享在Linux下使用OSGi.NET插件框架快速实现一个分布式服务集群的方法
在这篇文章我分享了如何使用分层与模块化的方法来设计一个分布式服务集群.这个分布式服务集群是基于DynamicProxy.WCF和OSGi.NET插件框架实现的.我将从设计思路.目标和实现三方面来描述. ...
随机推荐
- dvm 的进程和 Linux 的进程, 应用程序的进程是否为同一个概念?
dvm 指 dalvik 的虚拟机. 每一个 Android 应用程序都拥有一个独立的 Dalvik 虚拟机实例,应用程序都在它自己的进程中运行.而每一个 dvm 都是在 Linux 中的一个进程,所 ...
- emqttd学习教程(二):emqttd配置说明
一.配置文件说明emqttd消息服务器通过 etc/ 目录下配置文件进行设置,主要配置文件包括: 配置文件 说明 etc/emq.conf 消息服务器配置文件etc/acl.conf 默认ACL规则配 ...
- Jmeter(十一)测试监听
性能测试监控的主要任务是获取运行状态收集测试结果, 再对测试结果进行分析. 测试结果有事务响应时间,吞吐量及服务器硬件性能 , 数据库性能状态等等. Jmeter对长时间执行测试计划使用的监听器主要是 ...
- MySQL 创建函数报错 This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators
问题描述 通过Navicat客户端,创建MySQL函数(根据的当前节点查询其左右叶子节点)时报错,报错信息如下: This function has none of DETERMINISTIC, NO ...
- java:反射(Hibernate的雏形)
* java.lang.Class类:Class类的实例表示正在运行的 Java 应用程序中的类和接口,没有构造方法. java反射机制是在运行状态中,对于任何一个类,都能够知道这个类的所有属性和方法 ...
- AWSome Day简介
AWSome Day是什么? 它是一场为时一天.结合教育与技术新知的云计算技术免费研讨会.是面向所有开发人员.IT技术人员.或技术/业务领域决策者必备的基础云计算课程.AWS专业级讲师将在现场带领您从 ...
- java 编码设计细节
1.hibernate注解 @Validated({ APIGetsGroup.class })@NotBlank(message = "{cameraReceive.captureId.e ...
- shell脚本一键部署nginx
一键部署nginx 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ...
- C语言作业08
问题 答案 这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 https://i.cnblogs.com/EditPosts.aspx?opt=1 我在这个课程的目标是 在学好C语言编程的 ...
- PTA(Basic Level)1008.数组元素循环右移问题
一个数组A中存有N(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥0)个位置,即将A中的数据由(A0A1⋯AN−1)变换为(AN−M⋯AN−1A0A1⋯AN−M−1)(最 ...