在阿里云搭建redis高可用集群加SpringBoot 小demo
如何在阿里云搭建redis高可用集群
目标计划
Redis Cluster(Redis集群)
搭建Redis-Cluster
1. 需知:
需要搭建 6 台 redis 服务器。搭建伪集群。
需要 搭建6 个 redis 实例。
需要运行在不同的端口 7001-7006
2.准备工作
2.1:
CentOS 7.0
6台redis,端口号分别分配为7001、7002、7003、7004、7005、7006
设置7001、7002、7003为主机,7004、7005、7006分别依次为从机。
2.2
在阿里云中创建redis-cluster目录(名字自己指定), 复制redis的bin目录,配置其中的redis.conf(要是没有就从redis解压目录中复制一份),并命名目录为7001、7002…7006;即,每个目录下有一个bin目录,还有一个redis.conf配置文件。
配置集群 注释bind、 修改protected-mode配置、 修改运行端口为7001 (7002 7003 .....) 将cluster-enabled yes 前的注释去掉 注意:不注释的顶头,注释的后面加空格 注意: 建立小Demo,连接测试Redis-Cluster
2.3 搭建好处
Redis是在内存中保存数据的,而我们的电脑一般内存都不大,这也就意味着Redis不适合存储大数据,适合存储大数据的是Hadoop生态系统的Hbase或者是MogoDB。Redis更适合处理高并发,一台设备的存储能力是很有限的,但是多台设备协同合作,就可以让内存增大很多倍,这就需要用到集群。
2.4 简介
简介
1.Redis是一个开源的key value存储系统,注意:Redis3.0版本之前是只支持单例模式的,在Redis3.0+版本以后的才支持集群。
2. Redis集群采用P2P模式,即采用无中心结构,不存在中心节点或者代理节点,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接。Redis-Duster架构图如下:
一、开始搭建Redis-Cluster
1.安装gcc,Redis 是 c 语言开发的。安装 redis 需要 c 语言的编译环境。如果安装 了gcc,那么此步就省略。
yum install gcc-c++
注:如果出现Nothing to do,说明您已经安装过了,就不需在安装了,如下图:
2.使用yum命令安装 ruby1 (我们需要使用ruby脚本来实现集群搭建)
yum install ruby yum install rubygems
3.下载redis源码包,并解压
// 下载redis wget http://download.redis.io/releases/redis-5.0.6.tar.gz //解压redis tar -zxvf redis-5.0.6.tar.g
如上图:下载解压完成!!!
4.进入redis源码文件夹进行编译
make
如图:
如上图表示成功!
5.创建目录/usr/local/redis-cluster目录, 安装6个redis实例,分别安装在以下目
/usr/local/redis-cluster/redis1
/usr/local/redis-cluster/redis2
/usr/local/redis-cluster/redis3
/usr/local/redis-cluster/redis4
/usr/local/redis-cluster/redis5
/usr/local/redis-cluster/redis6
例:
make install PREFIX=/usr/local/redis-cluster/redis1
其他五个同理
6.复制配置文件 将 /redis-5.0.6/redis.conf 复制到redis下的bin目录下// 复制配置文件
cp redis.conf /usr/local/redis-cluster/redis1/bin
成功,其他五个一样的操作!
开始配置集群
1.用EditPlus3编辑器编辑修改每个redis节点的配置文件redis.conf,
注释bind、
修改protected-mode配置、
修改运行端口为7001 (7002 7003 …)
将cluster-enabled yes 前的注释去掉
注意:不注释的顶头,注释的后面加空格
如图:
1.启动每个redis实例,以第一个实例为例,命令如下
1. cd /usr/local/redis-cluster/redis1/bin/ 2. ./redis-server redis.conf
其他五个依次启动
启动成功如下图:
2.上传redis-3.0.0.gem ,安装 ruby用于搭建redis集群的脚本,然后执行下面代码
gem install redis-3.0.0.gem
3.使用 ruby 脚本搭建集群,进入redis源码目录中的src目录 执行下面的命令,然后打yes命令完成:
1. // 进入redis源码目录中的src目录 2.cd /usr/java/redis-5.0.6/src
5.0.0以下的版本使用一下命令(Ruby)
./redis-trib.rb create --replicas 1 服务器IP(公):7001 服务器IP(公):7002 服务器 IP(公):7003 服务器IP(公):7004 服务器IP(公):7005 服务器IP(公):7006
5.0.0以上的版本使用一下命令(C语言)
./redis-cli --cluster create --cluster-replicas 1 服务器IP(公):7001 服务器IP(公):7002 服务器 IP(公):7003 服务器IP(公):7004 服务器IP(公):7005 服务器IP(公):7006
启动成功
测试是否搭建好
Redis-cli 连接集群:
redis-cli -h 主机ip -p 端口(集群中任意端口) -c
-c:代表连接的是 redis 集群
例:进入 端口为7001的redis : redis-cli -p 7001
查看redis 信息 : info replication
如上图说明搭建完成!恭喜
建立小Demo,连接测试
1.建立springboot项目
2.配置pom
Redis-Cluster<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org /2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org /xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.1.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example.rediscluster</groupId> <artifactId>redemo</artifactId> <version>0.0.1-SNAPSHOT</version> <name>redemo</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
2.application.yml中配置
spring: redis: cluster: nodes: 服务器IP(公):7001,服务器IP(公):7002,1服务器IP(公):7003,服务器IP(公):7004,服务器IP(公) :7005,服务器IP(公):7006 max-redirects: 6
3.新建测试类,代码如下
package com.example.rediscluster.redemo; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.data.redis.core.HashOperations; import org.springframework.data.redis.core.RedisTemplate; import static org.junit.jupiter.api.Assertions.*; @SpringBootTest public class RedisTest { @Autowired private RedisTemplate redisTemplate; @Test public void text1(){ System.out.println(redisTemplate.hasKey("name")); redisTemplate.opsForValue().set("name", "123214"); String name = (String) redisTemplate.opsForValue().get("name"); System.out.println(name); redisTemplate.opsForValue().set("name2", "123214"); String name2 = (String) redisTemplate.opsForValue().get("name"); System.out.println(name2); redisTemplate.opsForValue().set("name3", "123214"); String name3 = (String) redisTemplate.opsForValue().get("name"); System.out.println(name3); redisTemplate.opsForValue().set("name4", "123214"); String name4 = (String) redisTemplate.opsForValue().get("name"); System.out.println(name4); HashOperations<String, String, String> hashOperations = redisTemplate.opsForHash(); hashOperations.put("user", "test", "测试"); System.out.println(hashOperations.get("user", "test")); } }
启动项目
Redis-Cluster成功搭建
注意!!!如果Redis-Cluster部署成功,结果如下图所示,有的反馈说是连接超时,重新启动即可!
原创:产品研发部 Mr.jun
- 点赞
- 收藏
- 分享
- 文章举报
- 在阿里云上搭建redis高可用集群,并写一个简单的springboot小demo测试
- 在阿里云上搭建redis高可用集群
- 阿里云上搭建redis高可用集群
- 阿里云上搭建redis高可用集群,并测试
- 阿里云上搭建redis高可用集群,并测试
- SpringBoot+redis 实现shiro集群,共享session。亲测可用
- 阿里云服务器搭建SpringBoot-MySQL-Redis-Nginx项目搭建
- 非关系型数据库Redis(三):搭建三主三从的两种方式与SpringBoot整合Redis集群
- 如何在阿里云上搭建Redis高可用集群
- springBootdemo搭建
- springboot2.0整合redis-cluster集群
- Redis Cluster搭建高可用Redis服务器集群
- SpringBoot获取Redis集群实例有缺少的问题->为Redis集群新增节点分配slot
- 基于Sentinel(哨兵)搭建实现Redis高可用集群
- Nginx+Tomcat搭建集群,Spring Session+Redis实现Session共享
- 搭建redis高可用集群
- 搭建高可用的redis集群,避免standalone模式带给你的苦难
- 基于ubuntu搭建Redis(4.0) Cluster 高可用(HA)集群环境
- springBoot整合redis集群
- Redis高可用集群-哨兵模式(Redis-Sentinel)搭建配置教程【Windows环境】