SpringBoot 整合redis
原创
©著作权归作者所有:来自51CTO博客作者一品堂_技术学习笔记的原创作品,请联系作者获取转载授权,否则将追究法律责任
SpringBoot 整合 redis 之Pom配置文件
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http:///POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http:///POM/4.0.0 https:///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.4.5</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.Alan</groupId>
<artifactId>SpringBootDataRedis</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>SpringBootDataRedis</name>
<description>SpringBootDataRedis</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!--springboot的启动器-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--thymeleaf 的启动器-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<!--springboot data redis的启动器-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!--对redis 客户端的 jedis 包的引入。高版本 已经不是自动引入该包。需要手动在pom文件中增加该包配置信息-->
<!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.6.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
设置 Java调用redis 的配置信息
RedisConfig.java
package com.alan.SpringBootDataRedis.config;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.StringRedisSerializer;
import redis.clients.jedis.JedisPoolConfig;
/*
* Todo
* 完成对redis 的整合一些配置
* @author: Alan_liu
* @date 2021/5/5 21:54
*/
@Configuration
public class RedisConfig {
/***
* 1:创建 JedispoolConfig 对象。在该对象中完成一些连接池配置
*
* @param
* @return {@link JedisPoolConfig}
* @throws
* @user Alan_liu
* @date 2021/5/5 22:18
*/
@Bean
public JedisPoolConfig jedispoolConfig(){
JedisPoolConfig config=new JedisPoolConfig();
//最大空闲数
config.setMaxIdle(10);
//最大空闲数
config.setMaxIdle(5);
//最大链接数
config.setMaxTotal(20);
return config;
}
/***
* 2:创建 JedisConnectionFactory:配置redis链接信息
*
* @param null
* @return {@link }
* @throws
* @user Alan_liu
* @date 2021/5/5 22:18
*/
@Bean
public JedisConnectionFactory jedisConnectionFactory(JedisPoolConfig config){
JedisConnectionFactory factory=new JedisConnectionFactory();
//关联连接池的配置对象
factory.setPoolConfig(config);
//配置链接redis的信息
factory.setHostName("127.0.0.1");//主机地址
factory.setPort(6379);//端口
factory.setPassword("123456");//设置密码
// factory.setDatabase(0);//访问操作redis数据库。以0到13的序号为下标。如果不设置,默认为第0个库
return factory;
}
/***
* 3:创建redisTemplate:用于执行redis操作的方法
*
* @param
* @return {@link RedisTemplate< String, Object>}
* @throws
* @user Alan_liu
* @date 2021/5/5 22:38
*/
@Bean
public RedisTemplate<String,Object> redisTemplate( JedisConnectionFactory factory){
RedisTemplate<String ,Object> template=new RedisTemplate<>();
//关联
template.setConnectionFactory(factory);
//为key设置序列号器
template.setKeySerializer(new StringRedisSerializer());
//为value 设置序列号器
template.setValueSerializer(new StringRedisSerializer());
return template;
}
}
SpringBootDataRedisApplication
package com.alan.SpringBootDataRedis;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringBootDataRedisApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootDataRedisApplication.class, args);
}
}
SpringBootDataRedisApplicationTests
package com.alan.SpringBootDataRedis;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class SpringBootDataRedisApplicationTests {
@Test
void contextLoads() {
}
}
测试调用情况
RedisTest
package com.alan.SpringBootDataRedis;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
/*
* Springboot redis 测试类
*
* @author: Alan_liu
* @date 2021/5/23 22:01
*/
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes=SpringBootDataRedisApplication.class)
public class RedisTest {
@Autowired
private RedisTemplate<String,Object> redisTemplate;
// 添加1个字符
@Test
public void testSet(){
this.redisTemplate.opsForValue().set("SpringBootRedisTestKey","AlanLiu");
}
//取出一个字符串
@Test
public void testGet(){
String value= (String) this.redisTemplate.opsForValue().get("SpringBootRedisTestKey");
System.out.println(value);
}
}
执行测试结果:


