博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring Boot 整合redis
阅读量:6305 次
发布时间:2019-06-22

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

整合redis

  • 实体类需要序列化
  • 额外配置依赖
org.springframework.boot
spring-boot-starter-cache
org.springframework.boot
spring-boot-starter-data-reis
复制代码
  • 通过配置文件配置
#配置redisspring.redis.host=192.168.243.129spring.redis.port=6379spring.redis.database=0spring.redis.password=bisnow#配置cachespring.cache.cache-names=c1复制代码
  • 启动器开启缓存自动配置
@SpringBootApplication@EnableCachingpublic class RediscacheApplication {复制代码
  • 此处模拟数据库操作
@Service// 配置缓存名称,不是必须的,可以在每一次启动时指定@CacheConfig(cacheNames = "c1")public class UserService {    /**     * @Cacheable 将当前方法的返回值缓存起来     * 缓存的key就是方法的参数,方法返回值是value     *     * 如果多个参数,同时作为key(必须都满足才能取出缓存)     * 多参数指定某个参数为key 需要手动配置     * @Cacheable(key = "id") 表示只用id作为key     * @param id     * @return     */    @Cacheable(key = "#id")    public User getUserById(Long id,String username){        System.out.println(id);        User user = new User();        user.setId(id);        return user;    }    /**     * 删除     *  allEntries 默认为false,表示根据key删除而不是全删除缓存     *  beforeInvocation 默认为false 表示先删除数据,后清除缓存     * @param id     */    //这个注解一般加在删除方法上,表示同步删除缓存中的数据    @CacheEvict(allEntries = false,beforeInvocation = false)    public void deleteById(Long id){        //在这里执行删除操作,去数据库中删除        //正常的逻辑:首先去数据库中删除,然后去缓存中删除    }    /**     * 更新     *  @CachePut 这个注解一般用在修改方法上     *  表示修改数据库数据的同时也修改缓存     *  更新方法必须有返回值     * geng     * @param id     * @return     */    @CachePut    public User updateById(Long id){        User user = new User();        user.setId(99L);        user.setUsername("李四");        return user;    }}复制代码
  • 测试类
@RunWith(SpringRunner.class)@SpringBootTestpublic class RediscacheApplicationTests {    @Autowired    UserService userService;    @Test    public void test1(){        User userById = userService.getUserById(99L,"");        System.out.println("userbyid >>> 1:" +userById);        User userById2 = userService.getUserById(99L,"");        System.out.println("uuerbyid >>> 2:" + userById2);    }    @Test    public void test2(){        User userById1 = userService.getUserById(99L,"");        System.out.println("uuerbyid >>> 1:" + userById1);        userService.deleteById(99L);        User userById2 = userService.getUserById(99L,"");        System.out.println("uuerbyid >>> 2:" + userById2);    }    @Test    public void test3(){        User userById = userService.getUserById(99L,"");        System.out.println("userbyid >>> 1:" +userById);        userService.updateById(99L);        User userById2 = userService.getUserById(99L,"");        System.out.println("uuerbyid >>> 2:" + userById2);    }}复制代码

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

你可能感兴趣的文章
服务网格内部的 VirtualService 和 DestinationRule 配置深度解析
查看>>
我的友情链接
查看>>
SEO工作之友好引导(二)
查看>>
ifcfg/ip/ss命令详解
查看>>
关于 Flume NG
查看>>
北电交换机常用配置
查看>>
Linux磁盘及文件系统管理
查看>>
Linux系统下Apache日志文件设置、更改默认网站目录、防止php***跨站设置、禁止空主机头...
查看>>
shell判断文件是否存在
查看>>
EXCHANGE事务日志和邮箱数据库的存储位置
查看>>
oracle conn /as sysdba后显示 乱码”???“
查看>>
(三)把域服务升级和迁移到Windows Server 2012 R2上
查看>>
动态主机配置协议:DHCP简介
查看>>
跟我学Spring Cloud(Finchley版)-05-服务注册与服务发现-Eureka入门
查看>>
VisualStudio不让控制台程序一闪而过
查看>>
交换机配置
查看>>
python读取excel表格的数据
查看>>
折半查找
查看>>
写给创始人的期权问答及实操白皮书(连载一)
查看>>
jenkins集成sonarqube
查看>>