JAVA语言框架之SpringBoot整合Spring Data Redis 学习讲解
小标 2018-09-11 来源 : 阅读 1068 评论 0

摘要:本文主要向大家介绍了JAVA语言框架之SpringBoot整合Spring Data Redis 学习讲解,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

本文主要向大家介绍了JAVA语言框架之SpringBoot整合Spring Data Redis 学习讲解,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

Redis版本:3.0.0运行环境:Linux
1 安装Redis
1.1安装gcc
Yum installgcc-c++
1.2 解压redis.3.0.0.tar.gz压缩包
tar -zxvfredis-3.0.0.tar.gz
1.3 进入解压后的目录进行编译
cd redis-3.0.0
make
1.4 将Redis安装到指定目录
makePREFIX=/usr/local/redis install
1.5 启动Redis
./redis-server
2 Spring Boot整合Spring Data Redis
Spring Data Redis是属于Spring Data下的一个模块。作用就是简化对于redis的操做
2.1 修改pom文件添加Spring Data Redis的坐标
"https://maven.apache.org/POM/4.0.0" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
org.springframework.boot
spring-boot-starter-parent
1.5.10.RELEASE
com.bjsxt
24-spring-boot-redis
0.0.1-SNAPSHOT
1.7
3.0.2.RELEASE
2.0.4
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-thymeleaf
org.springframework.boot
spring-boot-starter-data-redis
2.2 编写Spring DataRedis的配置类(重点)
/**
* 完成对Redis的整合的一些配置
*
*
*/
@Configuration
publicclass RedisConfig {
/**
* 1.创建JedisPoolConfig对象。在该对象中完成一些链接池配置
*
*/
@Bean
public JedisPoolConfig jedisPoolConfig(){
JedisPoolConfig config = new JedisPoolConfig();
//最大空闲数
config.setMaxIdle(10);
//最小空闲数
config.setMinIdle(5);
//最大链接数
config.setMaxTotal(20);
returnconfig;
}
/**
* 2.创建JedisConnectionFactory:配置redis链接信息
*/
@Bean
public JedisConnectionFactory jedisConnectionFactory(JedisPoolConfig config){
JedisConnectionFactory factory = new JedisConnectionFactory();
//关联链接池的配置对象
factory.setPoolConfig(config);
//配置链接Redis的信息
//主机地址
factory.setHostName("192.168.70.128");
//端口
factory.setPort(6379);
returnfactory;
}
/**
* 3.创建RedisTemplate:用于执行Redis操作的方法
*/
@Bean
public RedisTemplate redisTemplate(JedisConnectionFactory factory){
RedisTemplate template = new RedisTemplate<>();
//关联
template.setConnectionFactory(factory);
//为key设置序列化器
template.setKeySerializer(new StringRedisSerializer());
//为value设置序列化器
template.setValueSerializer(new StringRedisSerializer());
returntemplate;
}
}
2.3编写测试代码,测试整合环境
2.3.1修改pom文件添加测试启动器坐标
org.springframework.boot
spring-boot-starter-test
2.3.2 编写测试类
/**
* Spring Data Redis测试
*
*
*/
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes=App.class)
publicclass RedisTest {
@Autowired
private RedisTemplate redisTemplate;
/**
* 添加一个字符串
*/
@Test
publicvoid testSet(){
this.redisTemplate.opsForValue().set("key", "北京尚学堂");
}
/**
* 获取一个字符串
*/
@Test
publicvoid testGet(){
String value = (String)this.redisTemplate.opsForValue().get("key");
System.out.println(value);
}
}
3 提取redis的配置信息
3.1 在src/main/resource/目录下新建一个配置文件:application.properties
spring.redis.pool.max-idle=10
spring.redis.pool.min-idle=5
spring.redis.pool.max-total=20
spring.redis.hostName=192.168.70.128
spring.redis.port=6379
3.2修改配置类
/**
* 完成对Redis的整合的一些配置
*
*
*/
@Configuration
publicclass RedisConfig {
/**
* 1.创建JedisPoolConfig对象。在该对象中完成一些链接池配置
* @ConfigurationProperties:会将前缀相同的内容创建一个实体。
*/
@Bean
@ConfigurationProperties(prefix="spring.redis.pool")
public JedisPoolConfig jedisPoolConfig(){
JedisPoolConfig config = new JedisPoolConfig();
/*//最大空闲数
config.setMaxIdle(10);
//最小空闲数
config.setMinIdle(5);
//最大链接数
config.setMaxTotal(20);*/
System.out.println("默认值:"+config.getMaxIdle());
System.out.println("默认值:"+config.getMinIdle());
System.out.println("默认值:"+config.getMaxTotal());
returnconfig;
}
/**
* 2.创建JedisConnectionFactory:配置redis链接信息
*/
@Bean
@ConfigurationProperties(prefix="spring.redis")
public JedisConnectionFactory jedisConnectionFactory(JedisPoolConfig config){
System.out.println("配置完毕:"+config.getMaxIdle());
System.out.println("配置完毕:"+config.getMinIdle());
System.out.println("配置完毕:"+config.getMaxTotal());
JedisConnectionFactory factory = new JedisConnectionFactory();
//关联链接池的配置对象
factory.setPoolConfig(config);
//配置链接Redis的信息
//主机地址
/*factory.setHostName("192.168.70.128");
//端口
factory.setPort(6379);*/
returnfactory;
}
/**
* 3.创建RedisTemplate:用于执行Redis操作的方法
*/
@Bean
public RedisTemplate redisTemplate(JedisConnectionFactory factory){
RedisTemplate template = new RedisTemplate<>();
//关联
template.setConnectionFactory(factory);
//为key设置序列化器
template.setKeySerializer(new StringRedisSerializer());
//为value设置序列化器
template.setValueSerializer(new StringRedisSerializer());
returntemplate;
}
}
4 Spring Data Redis操作实体对象
4.1.1 创建实体类
publicclass Users implements Serializable {
private Integer id;
private String name;
private Integer age;
public Integer getId() {
returnid;
}
publicvoid setId(Integer id) {
this.id = id;
}
public String getName() {
returnname;
}
publicvoid setName(String name) {
this.name = name;
}
public Integer getAge() {
returnage;
}
publicvoid setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return"Users [id=" + id + ", name=" + name + ", age=" + age + "]";
}
}
4.1.2测试代码
/**
* 添加Users对象
*/
@Test
publicvoid testSetUesrs(){
Users users = new Users();
users.setAge(20);
users.setName("张三丰");
users.setId(1);
//重新设置序列化器
this.redisTemplate.setValueSerializer(new JdkSerializationRedisSerializer());
this.redisTemplate.opsForValue().set("users", users);
}
/**
* 取Users对象
*/
@Test
publicvoid testGetUsers(){
//重新设置序列化器
this.redisTemplate.setValueSerializer(new JdkSerializationRedisSerializer());
Users users = (Users)this.redisTemplate.opsForValue().get("users");
System.out.println(users);
}
5 Spring Data Redis以JSON格式存储实体对象
5.1测试代码
/**
* 基于JSON格式存Users对象
*/
@Test
publicvoid testSetUsersUseJSON(){
Users users = new Users();
users.setAge(20);
users.setName("李四丰");
users.setId(1);
this.redisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer<>(Users.class));
this.redisTemplate.opsForValue().set("users_json", users);
}
/**
* 基于JSON格式取Users对象
*/
@Test
publicvoid testGetUseJSON(){
this.redisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer<>(Users.class));
Users users = (Users)this.redisTemplate.opsForValue().get("users_json");
System.out.println(users);
}    

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注编程语言JAVA频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程