博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringBoot整合Redis
阅读量:6408 次
发布时间:2019-06-23

本文共 2854 字,大约阅读时间需要 9 分钟。

 1.Redis单机版:

 

(1)第一种:springBootStrap自动配置:

  • 目录结构

 

  • 引入spring-boot-starter-redis.jar
org.springframework.boot
spring-boot-starter-redis
1.4.4.RELEASE

 

 

  • SpringBoot运行类打注解开启redis缓存
package cn.qlq;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cache.annotation.EnableCaching;@SpringBootApplication@EnableCaching//开启redis缓存public class MySpringBootApplication {        public static void main(String[] args) {                //入口运行类        SpringApplication.run(MySpringBootApplication.class, args);    }}

 

 

  • application.properties添加redis配置
server.port=80logging.level.org.springframework=DEBUG#springboot   mybatis#jiazai mybatis peizhiwenjian#mybatis.mapper-locations = classpath:mapper/*Mapper.xml#mybatis.config-location = classpath:mapper/config/sqlMapConfig.xml#mybatis.type-aliases-package = cn.qlq.bean#shujuyuanspring.datasource.driver-class-name= com.mysql.jdbc.Driverspring.datasource.url = jdbc:mysql://localhost:3306/test1?useUnicode=true&characterEncoding=utf-8spring.datasource.username = rootspring.datasource.password = 123456#redisspring.redis.host=localhostspring.redis.port=6379

 

 

  • Service中打缓存注解:
package cn.qlq.service.impl;import java.sql.SQLException;import java.util.List;import java.util.Map;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.cache.annotation.CacheEvict;import org.springframework.cache.annotation.Cacheable;import org.springframework.stereotype.Service;import cn.qlq.bean.User;import cn.qlq.mapper.UserMapper;import cn.qlq.service.UserService;@Servicepublic class UserServiceImpl implements UserService {        @Autowired    private UserMapper userMapper;        @Cacheable(value="findAllUser",key="1")//在redis中开启key为findAllUser开头的存储空间    public List
findAllUser(Map condition) { System.out.println("打印语句则没有走缓存"); List
list = userMapper.findAll(); return list; } @Override @CacheEvict(value="findAllUser",allEntries=true)//执行此方法的时候删除上面的缓存(以findAllUser为名称的) public int addUser() throws SQLException { // TODO Auto-generated method stub return userMapper.addUser(); }}

 

  •  测试:

(1)访问:http://localhost/list?name=1(第一次不走缓存)

 

 

再次访问:

  没有打印语句,也就是没有走方法。

 

(2)http://localhost/list?name=2(第一次不走缓存)

 

 

再次访问:

  没有打印语句,也就是没有走方法。

 

 

(3)访问:http://localhost/list?name=1

  没有打印语句,也就是没有走方法。还是走的缓存。

 

查看Redis缓存的key:

 

 

RedisDesktopManager查看:

 

 

  • 测试清除缓存:

 

 

查看Redis缓存的key发现为空:

 

 

 

 

 

 

 

  总结:

    注解上的findAllUser是key的前缀,相当于findAllUser:xxxx,后面的是spring自动根据函数的参数生成,如果redis存在则不走方法,直接取出缓存,如果是参数不同,则走方法且加入缓存。

      清除缓存的时候只会清除缓存key前缀是findAllUser开头的,如果是自己手动添加的以findAllUser:开头的也会被清除。如下面的在执行add方法的时候也会被清除:

127.0.0.1:6379> set findAllUser:mykey testOK

 

转载地址:http://mltea.baihongyu.com/

你可能感兴趣的文章
编程学习初体验(5. 如何自学编程)(2)
查看>>
思科ISR G1与ISR G1C的区别
查看>>
利用perl提取web配置文件中的域名对应的路径
查看>>
Centos5上安装JRE和LUMAQQ
查看>>
关于监控工具的主动发起性能测试
查看>>
我的友情链接
查看>>
OpenSSL学习(十六):基础-指令rand
查看>>
Apache+tomcat实现高可用WEB集群
查看>>
KeyMob致力于打造国内领先的移动广告平台
查看>>
oracle的基本语法
查看>>
路由选路原则
查看>>
jvm 学习(一)
查看>>
JavaScript简介
查看>>
SQL Server附加数据库拒绝访问解决方法汇总
查看>>
SM2算法原理及实现
查看>>
RHCA教材翻译计划
查看>>
js-小括号在不同场合下的作用
查看>>
我的友情链接
查看>>
kvm中虚拟机的硬盘扩容
查看>>
Android (Launch Mode) 四种启动模式
查看>>