centos 7下搭建Redis5.x版集群

二、开始集群搭建

redis集群需要至少要三个master节点,我们这里搭建三个master节点,并且给每个master再搭建一个slave节点,总共6个redis节点,这里用一台机器(可以多台机器部署,修改一下ip地址就可以了)部署6个redis实例,三主三从,搭建集群的步骤如下:

第一步:在第一台机器的/usr/local下创建文件夹redis-cluster,然后在其下面创建6个文件夾如下:

mkdir /usr/local/redis-cluster

cd /usr/local/redis-cluster

mkdir 8001 8002 8003 8004 8005 8006

第二步:把之前的redis.conf配置文件copy到8001下,修改如下内容:

1)daemonize yes

2)port 8001(分别对每个机器的端口号进行设置)

3)dir /usr/local/redis-cluster/8001/(指定数据文件存放位置,必须要指定不同的目录位置,不然会丢失数据)

4)cluster-enabled yes(启动集群模式)

5)cluster-config-file nodes-8001.conf(集群节点信息文件,这里800x最好和port对应上)

6)cluster-node-timeout 5000

1. bind 127.0.0.1(去掉bind绑定访问ip信息)

2. protected-mode no (关闭保护模式)

9)appendonly yes

10)设置pidfile存放在 run目录下的文件名 pidfile /var/run/redis_8001.pid

11)dbfilename dump_8001.rdb

如果要设置密码需要增加如下配置:

12)requirepass xxx (设置redis访问密码)

13)masterauth xxx (设置集群节点间访问密码,跟上面一致)

第三步:把修改后的配置文件,

copy到8001-8006,修改第2、3、5项里的端口号,可以用

echo 8001 8002 8003 8004 8005 8006 | xargs -n 1 cp -v /usr/local/redis-cluster/redis.conf

上面的意思是将/usr/local/redis-cluster/redis.conf文件同时复制到8001-8006 二个文件夹。

-n 1 告诉 xargs 命令每个命令行最多使用一个参数,并发送到 cp 命令中。
cp 用于复制文件。
-v 启用详细模式来显示更多复制细节。

如果是将指定文件复制到当前路径下的所有文件夹:

echo ./* |xargs -n 1 cp -v d
注意千万不能漏写.另外当前路径下有其他文件会被d文件覆盖  此命令慎用 如果文件不是特别多建议使用上面的命令。

批量替换[在vi编辑状态下使用]:

%s/源字符串/目的字符串/g 

批量替换多个文件的内容

格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径`
sed -i "s/oldstring/newstring/g" `grep oldstring -rl yourdir`

example:
sed -i "s/8001/8002/g" `grep 8001 -rl /usr/local/redis-cluster/8002/redis.conf`

第四步:分别启动6个redis实例,然后检查是否启动成功

在redis-cluster目录下,编写redis_cluster_start_all.sh启动脚本,启动六个redis实例

/usr/local/redis507/bin/redis-server /usr/local/redis-cluster/8001/redis.conf

/usr/local/redis507/bin/redis-server /usr/local/redis-cluster/8002/redis.conf

/usr/local/redis507/bin/redis-server /usr/local/redis-cluster/8003/redis.conf

/usr/local/redis507/bin/redis-server /usr/local/redis-cluster/8004/redis.conf

/usr/local/redis507/bin/redis-server /usr/local/redis-cluster/8005/redis.conf

/usr/local/redis507/bin/redis-server /usr/local/redis-cluster/8006/redis.conf

由于刚创建好的redis_cluster_start_all.sh脚本是没有执行权限的,所以需要给脚本添加可执行权限

8001  8002  8003  8004  8005  8006  redis_cluster_start_all.sh  redis.conf
[[email protected] redis-cluster]# ll | grep redis_cluster_start_all.sh
-rw-r--r--. 1 root root   473 3月   1 19:05 redis_cluster_start_all.sh
[[email protected] redis-cluster]# chmod +x redis_cluster_start_all.sh
[[email protected] redis-cluster]# ll | grep redis_cluster_start_all.sh
-rwxr-xr-x. 1 root root   473 3月   1 19:05 redis_cluster_start_all.sh

启动六个redis实例

./redis_cluster_start_all.sh

查看是否启动成功

ps -ef | grep redis 

第五步:用redis-cli创建整个redis集群(redis5以前的版本集群是依靠ruby脚本redis-trib.rb实现)

/usr/local/redis507/bin/redis-cli -a gerry123 --cluster create --cluster-replicas 1 192.168.6.172:7001 192.168.6.172:7002 192.168.6.172:7003 192.168.6.172:7004 192.168.6.172:7005 192.168.6.172:7006

代表为每个创建的主服务器节点创建一个从服务器节点

第七步:验证集群:

1)连接任意一个客户端即可:

./redis-cli -c -a gerry123 -h 192.168.6.172 -p 7001

提示:-a访问服务端密码,-c表示集群模式,指定ip地址和端口号

例如:

/usr/local/redis-5.0.2/src/redis-cli -a xxx -c -h 192.168.5.100 -p 8001

注意这里进入到8002了,redirected。

2)进行验证: cluster info(查看集群信息)、cluster nodes(查看节点列表)

3)进行数据操作验证

4)关闭集群则需要逐个进行关闭,使用命令:

/usr/local/redis/src/redis-cli -a xxx -c -h 192.168.0.60 -p 8001 shutdown

三、Jedis连接Redis集群

import java.io.IOException;
import java.util.HashSet;
import java.util.Set;
import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.JedisCluster;
import redis.clients.jedis.JedisPoolConfig;

/**
    访问redis集群
    @author GERRY
*/
public class RedisCluster
{
public static void main(String[] args) throws IOException
{
    Set jedisClusterNode = new HashSet();
    jedisClusterNode.add(new HostAndPort(“192.168.6.61”, 8001));
    jedisClusterNode.add(new HostAndPort(“192.168.6.62”, 8002));
    jedisClusterNode.add(new HostAndPort(“192.168.6.63”, 8003));
    jedisClusterNode.add(new HostAndPort(“192.168.6.61”, 8004));
    jedisClusterNode.add(new HostAndPort(“192.168.6.62”, 8005));
    jedisClusterNode.add(new HostAndPort(“192.168.6.63”, 8006));

    JedisPoolConfig config = new JedisPoolConfig();
    config.setMaxTotal(100);
    config.setMaxIdle(10);
    config.setTestOnBorrow(true);
    //connectionTimeout:指的是连接一个url的连接等待时间
    //soTimeout:指的是连接上一个url,获取response的返回等待时间
    JedisCluster jedisCluster = new JedisCluster(jedisClusterNode, 6000, 5000, 10, "gerry", config);
    System.out.println(jedisCluster.set("student", "GERRY"));
    System.out.println(jedisCluster.set("age", "19"));

    System.out.println(jedisCluster.get("student"));
    System.out.println(jedisCluster.get("age"));

    jedisCluster.close();
}

原文地址:https://www.cnblogs.com/sunBinary/p/12391235.html

时间: 2024-11-01 23:04:16

centos 7下搭建Redis5.x版集群的相关文章

Centos7搭建redis5.0.5集群

Centos7搭建redis5.0.5集群 发表于 2019-09-06 | 分类于 Linux, Redis Redis是一个开源(BSD许可),内存数据结构存储,用作数据库,缓存和消息代理.它支持数据结构,如字符串,散列,列表,集合,带有范围查询的排序集,位图,超级日志,具有半径查询和流的地理空间索引.Redis具有内置复制,Lua脚本,LRU驱逐,事务和不同级别的磁盘持久性,并通过Redis Sentinel提供高可用性并使用Redis Cluster自动分区. 官网地址 一.集群方案比较

基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:3.安装Oracle RAC-3.6.集群管理命令

3.6. 集群管理命令 3.6.1. RAC的启动与关闭 oracle rac默认会开机自启动,如需维护时可使用以下命令: 关闭: crsctl stop cluster 停止本节点集群服务 crsctl stop cluster –all 停止所有节点服务 开启: crsctl start cluster 开启本节点集群服务 crsctl stop cluster –all 开启所有节点服务 注:以上命令需以 root用户执行 3.6.2.RAC检查运行状况 以grid 用户运行 [[emai

Solr Centos6.5下搭建solr-7.7.2集群solrcloud+DIH操作

上一篇介绍了单机版的搭建,现在来介绍集群版的搭建 什么是SolrCloud SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud.当一个系统的索引数据量少的时候是不需要使用SolrCloud的,当索引量很大,搜索请求并发很高,这时需要使用SolrCloud满足这些需求. SolrCloud不同于redis集群自带集群,SolrCloud是基于Solr和Zookeeper的分布式搜索方案,它的主要思想是使用Zooke

基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境

1.资源准备 最近,在VmwareStation 10虚拟机上,基于CentOS5.4安装Oracle 11g RAC,并把过程记录下来.刚开始时,是基于CentOS 6.4安装Oracle 11g RAC, 没有成功,主要是Oracle 11g RAC安装,没有针对CentOS 6.4的内核的一些包. 本文内容详实,包括安装过程中遇到的一些问题,也单独编一章节,第四章节的FAQ. http://blog.chinaunix.net/xmlrpc.php?r=blog/article&id=46

【MongoDB】在windows平台下搭建mongodb的分片集群(二)

在上一片博客中我们讲了Mongodb数据库中分片集群的主要原理.在本篇博客中我们主要讲描述分片集群的搭建过程.配置分片集群主要有两个步骤,第一启动所有需要的mongod和mongos进程.第二步就是启动一个mongos与集群通信.下面我们一步步来描述集群的搭建过程. 图1-1  MongoDB分片集群中的组件 图 1-2 由实例分片集群构成的进程全貌 备注:以上两者图片均引自于Kyle Banker著 丁雪丰译<MongoDB 实战> 2.1 创建分片目录 备注:此处于创建复制集类似,详细请查

基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:3.安装Oracle RAC-3.4.安装Grid Infrastructure

3.4.安装Grid Infrastructure 3.4.1.安装Grid 1.运行 grid的安装文件runInstaller [[email protected] grid]$ ./runInstaller Starting Oracle Universal Installer... Checking Temp space: must be greater than 120 MB.   Actual 14708 MB    Passed Checking swap space: must

CentOS系统下Hadoop 2.4.1集群安装配置(简易版)

安装配置 1.软件下载 JDK下载:jdk-7u65-linux-i586.tar.gz http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html Hadoop下载:hadoop-2.4.1.tar.gz http://www.apache.org/dyn/closer.cgi/hadoop/common/ 2./etc/hosts配置 [html] view plaincopyprin

linux下搭建HA高可用集群

HA 即 (high available)高可用,又被叫做双机热备,用于关键性业务. 简单理解就是,有两台机器A和B,正常是A提供服务,B待命闲置,当A宕机或服务宕掉,会切换至B机器继续提供服务.常用实现高可用的开源软件有heartbeat和keepalived,其中keepalived有负载均衡的功能. 实验前需准备的环境: 系统:两个CentOS  6.6系统 网卡:eth0.eth1 (本实验是在虚拟机上搭建需要提前给两个虚拟机系统各添加一块网卡) 给两个系统配置好网卡和IP后: [ema

基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:2.搭建环境-2.5. 配置网络

2.5.           配置网络 2.5.1.          配置网络 Oracle Rac数据库涉及到公用网络和私有网络,因此要做网络划分和IP地址规划,下表列出了要安装的RAC数据库对应的IP地址.主机名以及网络连接类型: Rac1 主机名 IP址址 子网 网络类型 解析方式 Eth0 10.10.97.161 255.255.255.0 公用网络 Eth1 192.168.2.116 255.255.255.0 私有网络 10.10.97.181 255.255.255.0 虚拟