• 使用 Spring data redis 结合 Spring cache 缓存数据配置


    使用 JavaConfig 方式配置

    依赖 jar 包: jedis、spring-data-redis 

    首先需要进行 Redis 相关配置

    @Configuration
    public class RedisConfig {
        
        @Bean
        public JedisPoolConfig poolConfig() {
            JedisPoolConfig poolConfig = new JedisPoolConfig();
            poolConfig.setMaxTotal(10);
            poolConfig.setMaxIdle(1);
            return poolConfig;
        }
        
        @Bean
        public RedisConnectionFactory redisConnectionFactory(JedisPoolConfig poolConfig) {
            JedisConnectionFactory cf = new JedisConnectionFactory();
            cf.setHostName("localhost");
            cf.setPort(6379);
    //      cf.setPassword("XXX");
            cf.setPoolConfig(poolConfig);
            return cf;
        }
        
        @Bean
        public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) {
            RedisTemplate redisTemplate = new RedisTemplate();
            redisTemplate.setConnectionFactory(redisConnectionFactory);
          
            // 如果 key 确定使用 String 类型,可以使用这个序列化类,方便查看
            // redisTemplate.setKeySerializer(new StringRedisSerializer());
            // value 的序列化默认使用 JdkSerializationRedisSerializer
            
            redisTemplate.afterPropertiesSet();
            return redisTemplate;
        }
    }

    之后需要进行 Spring Cache 的配置

    @Configuration
    // 启用缓存
    @EnableCaching
    // 引用 Redis 的配置
    @Import({RedisConfig.class})
    public class CacheConfig {
        @Bean
        public CacheManager cacheManager(RedisTemplate redisTemplate) {
            RedisCacheManager cacheManager = new RedisCacheManager(redisTemplate);
            // 设置默认过期时间(秒)
            cacheManager.setDefaultExpiration(60);
         // 如果需要单独设置key的过期时间,可以使用 cacheManager.setExpires((Map<String, Long> expires)
    return cacheManager; } }

    注意:

    1、要进行缓存的类必须实现 Serializable 接口

    2、因为实现方式为使用代理,所以类内部调用不会触发缓存

     

  • 相关阅读:
    C++ 二元作用域运算符(::)
    C 桶排序
    C 递归的选择排序
    C 归并算法
    C 可变长实参列表
    C条件编译的一些例子
    C实现将中缀算术式转换成后缀表达式
    Activiti6-数据库配置-dbconfig(学习笔记)
    idea在Terminal中使用maven指令
    Spring Boot的web开发
  • 原文地址:https://www.cnblogs.com/zawier/p/7354849.html
Copyright © 2020-2023  润新知