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

     

  • 相关阅读:
    2020.2.14
    2020.2.13
    2020.2.12
    2020.2.11
    org.apache.ibatis.binding.BindingException: Parameter '0' not found. Available parameters are [arg1, arg0, param1, param2]
    springboot 项目报错问题的解决
    使用IDEA搭建一个简单的SpringBoot项目——详细过程
    从零开始实现一个简易的Java MVC框架(三)--实现IOC
    使用IDEA创建JavaWeb项目 部署本地tomcat并运行
    ChromePassword
  • 原文地址:https://www.cnblogs.com/zawier/p/7354849.html
Copyright © 2011-2022 走看看