1、案例说明
重点说明1:
很多人redis集群已经配置成功了,并且可以正常使用,但是springboot工程无法连接。
情况1:linux系统没有开发端口,需要开放端口:centos7中设置端口放行(centos7防火墙配置端口放行)_centos 放行端口_雾林小妖的博客-CSDN博客
情况2:在redis.conf的配置中,bind的属性设置成bind 0.0.0.0,需要设置成bind 192.168.133.149
重点说明2:如果没有成功搭建redis集群请卡下面的连接:
redis集群配置连接: https://blog.csdn.net/tangshiyilang/article/details/129890028
2、环境搭建
2.1、创建工程引入相关依赖
2.2、在pom.xml中加入配置
需要加入jedis配置
<?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.7.6</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.txc</groupId>
<artifactId>springboot_redis</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot_redis</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>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>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.75</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
2.3、在application.yml文件中配置连接redis集群信息
【连接redis集群配置】 【连接单击redis配置】
spring:
#redis配置
redis:
database: 0
host: 192.168.133.147
port: 6379
timeout: 5000
password: 123456
【连接redis集群配置】
spring:
redis:
cluster:
nodes:
- 192.168.133.149:9001
- 192.168.133.149:9002
- 192.168.133.149:9003
- 192.168.133.149:9004
- 192.168.133.149:9005
- 192.168.133.149:9006
max-redirects: 6 #节点数量
jedis:
pool:
max-active: 16 #最大的连接数
max-wait: 3000 #最大的等待时间
max-idle: 8 #最大空闲数
min-idle: 0 #最小空闲数
2.4、创建Redis操作配置类
@Configuration
public class RedisConfig{
/*配置order,如果不配置添加数据,redis中的key和value乱码*/
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(redisConnectionFactory);
// 创建一个json的序列化方式
GenericJackson2JsonRedisSerializer jackson2JsonRedisSerializer = new GenericJackson2JsonRedisSerializer();
// 设置value用jackjson进行处理
redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
// 设置key用string序列化方式
redisTemplate.setKeySerializer(new StringRedisSerializer());
// 设置hash的键
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
// 设置hash的value序列化
redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer);
redisTemplate.afterPropertiesSet();
return redisTemplate;
}
}
3、redisTemplate操作String类型的数据
@Controller
public class TestController {
@Resource
private RedisTemplate redisTemplate;
//数据缓存值redis,String类型
@RequestMapping("/testString")
@ResponseBody
public void testString() throws Exception {
System.out.println("======132=========");
//创建操作字符串类型数据的对象
ValueOperations opsString=redisTemplate.opsForValue();
//使用1、添加一条key为username,值为shiyilang的String
opsString.set("username", "shiyilang");
//使用2、查询key为username的值
opsString.get("username");
}
4、源码地址
https://download.csdn.net/download/tangshiyilang/87665205