SpringDataRedis笔记

spring:
  application:
    name: springdataredis

  redis:
    host: 120.0.0.1
    port: 6379
    password: 123456
    lettuce:
      pool:
        #最大连接数 默认就是8
        max-active: 8
        #最大空闲连接 默认就是8
        max-idle: 8
        #最小空闲连接 默认是0
        min-idle: 0
        #连接等待时间  默认-1无限等待
        max-wait: 100

RedisTemplate默认用JDK序列化

就会出现这样情况

会导致的问题是 当不同客户端由于序列化不同  取出来的不同

例如 我们取  取不出来了   当然  你如果相同客户端  还是可以取出来的  但是显示效果不好 可读性效果不好

所以一般会修改他的序列化  可读性强

那么就改变RedisTemplate的序列化方式

配置类

一般来说key和hashkey都会String

@Configuration
public class RedisTemplateConfig {

    @Bean
    public RedisTemplate<String,Object> redisTemplate(RedisConnectionFactory connectionFactory){
        //创建Template
        RedisTemplate<String,Object> redisTemplate=new RedisTemplate<>();
        //设置连接工程
        redisTemplate.setConnectionFactory(connectionFactory);
        //设置序列化工具
        GenericJackson2JsonRedisSerializer jackson2JsonRedisSerializer=new GenericJackson2JsonRedisSerializer();
        //Key和hashKey一般用String序列化
        redisTemplate.setKeySerializer(RedisSerializer.string());
        redisTemplate.setHashKeySerializer(RedisSerializer.string());
        //value和hashValue采用JSON序列化
        redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
        redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer);
        return redisTemplate;
    }

}

我这里因为引入了web  (里面包含了jackson依赖)如果没有  就引入

这样对象也可以序列化

一般的做法

啥意思呢   就是说建议是将value序列化  和hashValue序列话也改成String 达到节省redis内存占用问题,代码上就稍微多写几行

SpringBoot提供了StringRedisTemplate专门用于将Key Value的序列化方式默认就是String方式

代码上我们就多写了几行  但是在大数据时候 保证了Redis中内存不浪费  

 @Bean
    public CacheManager cacheManager(RedisConnectionFactory connectionFactory) {
        //生成一个默认配置,通过config对象即可对缓存进行自定义配置
        RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig();
        config = config
                // 设置 key为string序列化
                .serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(new StringRedisSerializer()))
                // 设置value为json序列化
                .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(jackson2JsonRedisSerializer() ))
                // 不缓存空值
                .disableCachingNullValues()
                // 设置缓存的默认过期时间 30分钟
                .entryTtl(Duration.ofMinutes(30L));

        //特殊缓存空间应用不同的配置
        Map<String, RedisCacheConfiguration> map = new HashMap<>();
        map.put("provider1", config.entryTtl(Duration.ofMinutes(30L)));//provider1缓存空间过期时间 30分钟
        map.put("provider2", config.entryTtl(Duration.ofHours(1L)));//provider2缓存空间过期时间 1小时

        //使用自定义的缓存配置初始化一个RedisCacheManager
        RedisCacheManager cacheManager = RedisCacheManager.builder(connectionFactory)
                .cacheDefaults(config) //默认配置
                .withInitialCacheConfigurations(map) //特殊缓存
                .transactionAware() //事务
                .build();

        return cacheManager;
    }

相关推荐

  1. Redis—SpringDataRedis

    2024-03-13 11:28:05       40 阅读
  2. SpringDataRedis 基本使用

    2024-03-13 11:28:05       40 阅读
  3. SpringBoot项目配置SpringDataRedis

    2024-03-13 11:28:05       39 阅读
  4. 笔记

    2024-03-13 11:28:05       24 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-13 11:28:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-13 11:28:05       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-13 11:28:05       82 阅读
  4. Python语言-面向对象

    2024-03-13 11:28:05       91 阅读

热门阅读

  1. [element-ui] el-table组件滚动条的宽度设置

    2024-03-13 11:28:05       33 阅读
  2. 刨析目前市面上各注册中心产品的优劣势

    2024-03-13 11:28:05       36 阅读
  3. k8s Helm3详解 (部署,自定义,仓库,)

    2024-03-13 11:28:05       28 阅读
  4. vue3+elementPlus项目支持设置默认附件

    2024-03-13 11:28:05       43 阅读
  5. Kotlin Retrofit 网络请求

    2024-03-13 11:28:05       40 阅读
  6. Unity 地图数据生成

    2024-03-13 11:28:05       39 阅读
  7. Spring Boot- Validation

    2024-03-13 11:28:05       34 阅读
  8. LeetCode题练习与总结:搜索旋转排序数组

    2024-03-13 11:28:05       39 阅读
  9. 【leetcode热题】反转字符串中的单词

    2024-03-13 11:28:05       46 阅读
  10. 焦点调制网络

    2024-03-13 11:28:05       42 阅读
  11. 蓝桥杯历年真题省赛之 2016年 第七届 生日蜡烛

    2024-03-13 11:28:05       31 阅读
  12. Kafka吞吐量高的原因

    2024-03-13 11:28:05       35 阅读
  13. 阿里云国际修改域名绑定的DDoS高防服务器

    2024-03-13 11:28:05       40 阅读