1、配置redis整合spring的环境
2、相关实体类序列化
3、编写serviceImpl方法
使用redis中的String结构实现 带缓存的分页 key-value
思路:先从缓存获取数据, 如果有, 直接返回redis中的数据
如果没有, 再到数据库查询, 把查询到数据, 缓存一份到redis, 便于下一次查找
第一页的house信息. house_1 第二页的house信息, house_2 house_3
分页查询的方法:
@Override public Page<House> findByPage(int pageIndex, int pageSize) throws Exception { //自定义key值为house+当前页码 String key = "house_"+pageIndex; //如果redis缓存中存在 if(redisTemplate.hasKey(key)) { return (Page<House>)redisTemplate.opsForValue().get(key); } //如果不存在 Page<House> page = new Page<>(pageIndex,pageSize); getBaseMapper().selectPage(page, null); //缓存一份到redis,时间为10天 redisTemplate.opsForValue().set(key, page,10,TimeUnit.DAYS); return page; }
测试:
第一次查询第一页,查看控制台编写sql语句
第二次查询第一页,查询出数据,控制台中没有sql语句(查看redis服务器中是否存在key值为house+index 的值)
Redis 缓存, 提高查询效率, 执行增,删,改, 一定要清空redis中(增删改的)缓存的数据