zoukankan      html  css  js  c++  java
  • springboot结合redis做缓存

    1.引入依赖

    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-pool2</artifactId>
        <version>2.6.2</version>
    </dependency>
    
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId>
        <version>2.1.3.RELEASE</version>
    </dependency>

    2.业务层添加注解

    @Service
    public class UserServiceImpl implements UserService {
        @Autowired
        private UserMapper userMapper;
    
        public void setUserMapper(UserMapper userMapper) {
            this.userMapper = userMapper;
        }
    
        @Override
    //    @BaiZhiCacheable("users")
        //缓存名:users 数据的key=方法名
        @Cacheable(value="users",key="#root.methodName")
        public List<User> showAllUsers() {
            System.out.println("查询数据库");
            return userMapper.selectAllUsers();
        }
    
        @Override
    //    @BaiZhiCacheable("users")
        //缓存名:users 数据的key=方法名+id参数值
        @Cacheable(value="users",key="#root.methodName+#id")
        public User showUser(Integer id) {
            System.out.println("查询数据库");
            return userMapper.selectUserById(id);
        }
    
        @Override
    //    @BaiZhiCacheEvict("users")
        //缓存名:users 删除全部数据,在方法执行后执行缓存删除
        @CacheEvict(value="users",allEntries = true,beforeInvocation = false)
        public void removeUser(Integer id) {
            System.out.println("删除数据库");
            userMapper.deleteUserById(id);
        }
    }

    3.application.yml

    spring:
      redis:
        lettuce:
          pool:
            max-active: 500
            max-idle: 50
            min-idle: 10
            max-wait: 30000
        host: 192.168.146.20
        port: 6379

    4.入口类(注意注解不要少)

    @SpringBootApplication
    @MapperScan("com.baizhi.mapper")
    @EnableCaching
    //@EnableCaching注解是spring framework中的注解驱动的缓存管理功能。自spring版本3.1起加入了该注解。如果你使用了这个注解,那么你就不需要在XML文件中配置cache manager了
    public class SpringBootRedisApplication { public static void main(String[] args) { SpringApplication.run(SpringBootRedisApplication.class,args); } //配置缓存管理器 @Bean public CacheManager cacheManager(RedisConnectionFactory connectionFactory){ RedisCacheWriter redisCacheWriter = RedisCacheWriter.nonLockingRedisCacheWriter(connectionFactory); return new RedisCacheManager(redisCacheWriter,getRedisCacheConfiguration(20), getRedisCacheConfigurationMap()); } private Map<String, RedisCacheConfiguration> getRedisCacheConfigurationMap(){ Map<String, RedisCacheConfiguration> redisCacheConfigurationMap = new HashMap<>(); redisCacheConfigurationMap.put("users", getRedisCacheConfiguration(100)); redisCacheConfigurationMap.put("books", getRedisCacheConfiguration(60)); return redisCacheConfigurationMap; } //RedisCacheConfiguration 用于负责Redis的缓存配置 private RedisCacheConfiguration getRedisCacheConfiguration(int seconds){ RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig(); GenericJackson2JsonRedisSerializer jackson2JsonRedisSerializer = new GenericJackson2JsonRedisSerializer(); return redisCacheConfiguration .serializeValuesWith( RedisSerializationContext.SerializationPair.fromSerializer(jackson2JsonRedisSerializer) ) .entryTtl(Duration.ofSeconds(seconds)); } }
    以粮为纲全面发展
  • 相关阅读:
    洛谷P2569 (BZOJ1855)[SCOI2010]股票交易 【单调队列优化DP】
    洛谷 P2254 [NOI2005]瑰丽华尔兹(单调栈优化DP)
    CF372C Watching Fireworks is Fun(单调队列优化DP)
    2019牛客全国多校第八场A题 All-one Matrices(单调栈)
    HDU3896 Greatest TC(双联通分量+倍增)
    2019牛客多校第7场
    ZOJ 2112 Dynamic Rankings(树状数组+主席树)
    2019 杭电多校第六场 题解
    HDU2242 考研路茫茫——空调教室 (双联通分+树形DP)
    HDU5536 Chip Factory
  • 原文地址:https://www.cnblogs.com/alexliuf/p/13966723.html
Copyright © 2011-2022 走看看