• 使用 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、因为实现方式为使用代理,所以类内部调用不会触发缓存

     

  • 相关阅读:
    Go语言踩过的坑---记录GOPATH在GOLAND中的坑
    反射小例子
    制作pip包
    mac常用软件安装链接
    YCSB压测elasticsearch
    SSO和Auth2.0
    JAVA内部类的四大作用
    修改fastadmin,添加模糊查询
    AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.18.0.2. Set the 'ServerName' directive globally to suppress this message
    taro3.x: 封装实现chat emit on
  • 原文地址:https://www.cnblogs.com/zawier/p/7354849.html
Copyright © 2020-2023  润新知