springboot整合redis集群

本文介绍了Redis集群的原理,包括哈希槽的分配策略。详细讲述了如何在两台服务器上搭建Redis集群,包括Ruby环境的安装、Redis的安装与配置、集群的创建。接着,文章演示了在SpringBoot中整合Redis集群的步骤,包括添加依赖、配置信息以及编写测试Controller。
摘要由CSDN通过智能技术生成

一、redis集群原理

redis集群中的所有节点彼此互联,节点内部采用二进制协议优化传输速度和带宽,每个节点都可以与Java客户端连接。redis集群的数据分配采用哈希槽,它内置了16384个哈希槽,开发者可以根据每个redis实例的性能来调整每个redis实例上哈希槽的分布范围。当需要进行数据存取时,redis首先使用CRC16算法对key进行计算,计算结果对16384取余,即CRC16(key)%16384,使用余数来确定去哪一个节点存取这个key。当集群中超过半数的节点检测失效时会认为该节点失效。

二、集群搭建

1.集群规划
本次在两台服务器上进行安装,192.168.72.129和192.168.72.130,集群规划如下:
主节点:192.168.72.129:7001,192.168.72.129:7002,192.168.72.129:7003
从节点:192.168.72.130:8001,192.168.72.130:8002,192.168.72.130:8003
2.安装Ruby环境
Redis5.0之前的版本,创建集群需要使用redis集群管理工具redis-trib.rb,它依赖于Ruby环境,需要安装Ruby环境,5.0之后的版本不再依赖Ruby环境,请自行绕过该小节
为了方便安装,此处使用Ruby版本管理工具rvm来进行安装(可参考rvm官网:http://www.rvm.io/)。
安装GPG key:

gpg2 --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

安装rvm:

\curl -sSL https://get.rvm.io | bash -s stable

此时发现有报错:
在这里插入图片描述
这是因为nss版本过低导致,升级nss版本:yum -y update nss,再次执行上一步命令安装成功。

查找rvm配置文件: find / -name rvm.sh ,返回路径为:/etc/profile.d/rvm.sh。

使配置文件生效:source /etc/profile.d/rvm.sh

下载rvm依赖:rvm requirements

查看rvm库Ruby版本:rvm list known,如下图所示:
在这里插入图片描述
选择指定版本进行安装:rvm install ruby-2.5.3
安装后有提示:在这里插入图片描述
查看/usr/local/rvm/log/1551880376_ruby-2.5.3/rubygems.install.log,里边有如下提示:
在这里插入图片描述
此时需要使用rvm install ruby-2.5.3 --rubygems ignore命令来安装。安装成功:
在这里插入图片描述

设置ruby默认版本:rvm use 2.5.3 default
最后,安装Redis依赖:gem install redis

3.解压安装redis
两台服务器上均执行如下操作:
(1)上传下载好的redis安装包redis-5.0.3.tar.gz到/instal目录下,执行命令tar -zxvf redis-5.0.3.tar.gz解压文件;
(2)将解压好的文件复制到规划好的安装位置cp -r redis-5.0.3 /usr/local/redis_cluster
(3)在/usr/local/redis_cluster目录下执行以下命令进行安装:

make MALLOC=libc
make install

安装期间会遇到的问题可参考:

以下是Spring Boot整合Redis集群的步骤: 1. 添加Redis依赖:在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> ``` 2. 配置Redis集群节点:在application.properties或application.yml文件中配置Redis集群节点的信息,例如: ```yaml spring.redis.cluster.nodes=192.168.0.1:6379,192.168.0.2:6379,192.168.0.3:6379 ``` 3. 配置Redis连接池:可以根据需要配置Redis连接池的相关参数,例如最大连接数、最大空闲连接数等。以下是一个示例配置: ```yaml spring.redis.jedis.pool.max-active=100 spring.redis.jedis.pool.max-idle=10 spring.redis.jedis.pool.min-idle=5 spring.redis.jedis.pool.max-wait=3000 ``` 4. 创建RedisTemplate Bean:在配置类中创建RedisTemplate Bean,用于操作Redis集群。以下是一个示例配置: ```java @Configuration public class RedisConfig { @Bean public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) { RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>(); redisTemplate.setConnectionFactory(redisConnectionFactory); redisTemplate.setKeySerializer(new StringRedisSerializer()); redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer()); return redisTemplate; } } ``` 5. 使用RedisTemplate操作Redis集群:在需要使用Redis的地方,注入RedisTemplate,并使用其提供的方法操作Redis集群。以下是一个示例: ```java @Autowired private RedisTemplate<String, Object> redisTemplate; public void setValue(String key, Object value) { redisTemplate.opsForValue().set(key, value); } public Object getValue(String key) { return redisTemplate.opsForValue().get(key); } ``` 这样就完成了Spring Boot与Redis集群整合
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值