资讯专栏INFORMATION COLUMN

springboot 整合redis

elarity / 1152人阅读

摘要:与整合默认使用的是,相较于,是一个可伸缩的,线程安全的客户端。在处理高并发方面有更多的优势。使用依赖主要需要的依赖为配置配置使用与整合可以在不更改现有代码逻辑的基础上,通过增加注解的方式,实现缓存。

springboot2.0 与redis整合默认使用的是Lettuce,相较于jedis,lettuce 是一个可伸缩的,线程安全的redis客户端。在处理高并发方面有更多的优势。

RedisTemplate 使用

依赖, 主要需要的依赖为

 compile("org.springframework.boot:spring-boot-starter-data-redis")
 compile("org.apache.commons:commons-pool2:2.6.0")
 compile("com.alibaba:fastjson:1.2.33")

yml 配置

 spring:
   redis:
     database: 1
     host: 192.168.1.XX
     port: 6379
     lettuce:
       pool:
         max-active: 8
         max-wait: -1ms
         min-idle: 0

redisTemplate 配置

@Configuration
public class RedisConfiguration {

@Bean
public RedisTemplate redisTemplate(LettuceConnectionFactory connectionFactory){
    RedisTemplate template = new RedisTemplate();
    template.setConnectionFactory(connectionFactory);

    ObjectMapper objectMapper = new ObjectMapper();
    objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
    objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);

    Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
    jackson2JsonRedisSerializer.setObjectMapper(objectMapper);

    template.setValueSerializer(jackson2JsonRedisSerializer);
    template.setKeySerializer(new StringRedisSerializer());
    template.afterPropertiesSet();

    return  template;
    }
}
  
1. 使用
 @Autowired
RedisTemplate redisTemplate;
 public void addData(){
    MyInfo myInfo = new MyInfo("11","22","s344");
    redisTemplate.opsForValue().set("11",myInfo);
    redisTemplate.opsForValue().set("myse","mys");
}
```
spring-cache 与 redis 整合

spring cache 可以在不更改现有代码逻辑的基础上,通过增加注解的方式,实现缓存。 减少代码侵入

在gradle文件中增加 spring-cache的相关依赖 compile("org.springframework.boot:spring-boot-starter-cache")

配置CacheManager, 在Configuration 配置类上增加EnableCache 注解;

配置CacheManager Bean,代码为

    Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
     ObjectMapper objectMapper = new ObjectMapper();
     objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
     objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
     jackson2JsonRedisSerializer.setObjectMapper(objectMapper);

     RedisCacheWriter redisCacheWriter = RedisCacheWriter.nonLockingRedisCacheWriter(redisConnectionFactory);

     RedisCacheConfiguration cacheConfiguration = RedisCacheConfiguration.defaultCacheConfig();
     cacheConfiguration = cacheConfiguration.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(jackson2JsonRedisSerializer));
     cacheConfiguration.entryTtl(Duration.ofMinutes(10));
     CacheManager cacheManager = new RedisCacheManager(redisCacheWriter, cacheConfiguration);
     return cacheManager;

完成上述配置后,便可以在service中直接使用spring-cache注解,完整代码: 代码

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/62035.html

相关文章

  • SpringBoot非官方教程 | 第九篇: SpringBoot整合Redis

    摘要:经过上述两步的操作,你可以访问数据了。数据访问层通过来访问分钟过期单元测试启动单元测试,你发现控制台打印了单元测试通过源码下载参考资料 这篇文章主要介绍springboot整合redis 引入依赖 在pom文件中添加redis依赖: org.springframework.boot spring-boot-starter-data-redis 配置数据源 spri...

    csRyan 评论0 收藏0
  • 两年了,我写了这些干货!

    摘要:开公众号差不多两年了,有不少原创教程,当原创越来越多时,大家搜索起来就很不方便,因此做了一个索引帮助大家快速找到需要的文章系列处理登录请求前后端分离一使用完美处理权限问题前后端分离二使用完美处理权限问题前后端分离三中密码加盐与中异常统一处理 开公众号差不多两年了,有不少原创教程,当原创越来越多时,大家搜索起来就很不方便,因此做了一个索引帮助大家快速找到需要的文章! Spring Boo...

    宋华 评论0 收藏0
  • 两年了,我写了这些干货!

    摘要:开公众号差不多两年了,有不少原创教程,当原创越来越多时,大家搜索起来就很不方便,因此做了一个索引帮助大家快速找到需要的文章系列处理登录请求前后端分离一使用完美处理权限问题前后端分离二使用完美处理权限问题前后端分离三中密码加盐与中异常统一处理 开公众号差不多两年了,有不少原创教程,当原创越来越多时,大家搜索起来就很不方便,因此做了一个索引帮助大家快速找到需要的文章! Spring Boo...

    huayeluoliuhen 评论0 收藏0
  • springboot系列】springboot整合独立模块 redis 做缓存

    摘要:至此,已完成整合独立模块做缓存详情请看地址相关文章系列整合独立模块 项目github地址:https://github.com/5-Ason/aso...具体可看 ./db/db-redis 和 ./db/db-cache 两个模块 // TODO 在整合redis之前需要先本地配置好redis环境,迟点有时间补一下linux下下载安装配置redis 本文主要实现的是对数据操作进行独立...

    qianfeng 评论0 收藏0
  • springboot系列】springboot整合独立模块 redis 做缓存

    摘要:至此,已完成整合独立模块做缓存详情请看地址相关文章系列整合独立模块 项目github地址:https://github.com/5-Ason/aso...具体可看 ./db/db-redis 和 ./db/db-cache 两个模块 // TODO 在整合redis之前需要先本地配置好redis环境,迟点有时间补一下linux下下载安装配置redis 本文主要实现的是对数据操作进行独立...

    Jokcy 评论0 收藏0
  • springboot系列】springboot整合独立模块 redis 做缓存

    摘要:至此,已完成整合独立模块做缓存详情请看地址相关文章系列整合独立模块 项目github地址:https://github.com/5-Ason/aso...具体可看 ./db/db-redis 和 ./db/db-cache 两个模块 // TODO 在整合redis之前需要先本地配置好redis环境,迟点有时间补一下linux下下载安装配置redis 本文主要实现的是对数据操作进行独立...

    antz 评论0 收藏0

发表评论

0条评论

elarity

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<