因为对于广告的轮播图
我们每个人都要访问。所以我们需要使用缓存
我们要用的是spring-data-redis
引入两个jar
第一个是jedis的
第二个是spring-data-redis
然后引入两个配置文件
redis-config.properties
最重要的就是主机 和port
spring 的配置文件,也是引入这个上面的文件。
建立一个一个连接池
这个是数据Jedis的
下面的工厂类是spring的了
以及初始化template
junit 中需要
@RunWith(SpringJunit4ClassRunner.class)
@ContextConfigration(locations=“classpath:spring/applicationContext-redis.xml”)
测试必须
因为在配置文件中已经bean配置了
在测试类中要
@Autoware
private RedisTemplate redisTemplate;
redisTemplate.bunnd redis常用的几种类型
String
存值
redisTemplate.boundValueOps(“name”).set(“itcast”);
取值
redisTemplate.boundValueOps(“name”).get();
默认是Object。强转就ok了
删除
我们可以一次删一个key 或者传入一个key的集合也可以
redisTemplate.delete(“name”);
set 不可重复。无顺序。所以无下标
存值
redisTemplate.boundSetOps(“nameset”).add(“曹操”);
redisTemplate.boundSetOps(“nameset”).add(“刘备”);
redisTemplate.boundSetOps(“nameset”).add(“孙权”);
取值
Set set = redisTemplate.boundSetOps(“nameset”).get();
存储无顺序
删除某个值
redisTemplate.remove(“刘备”):
删除key
redisTemplate.delete(“nameset”);
和以前一样。通用
list
存值 正序
redisTemplate.boundListOps(“namelist1”).rightPush(“刘备”):
redisTemplate.boundListOps(“namelist1”).rightPush(“关羽”):
redisTemplate.boundListOps(“namelist1”).rightPush(“张飞”):
取值多个
redisTemplate.boundListOps(“namelist1”).range(start 0,end 10);
下标取值
redisTemplate.boundListOps(“namelist1”).index(1); 数组下标一样。
根据名称删除
redisTemplate.boundListOps(“namelist1”).remove(i 几个 1,“关羽");
hash
存值
redisTemplate.boundHashOps(“namehash”).put(“a”,“唐僧”):
redisTemplate.boundHashOps(“namehash”).put(“a”,“悟空”):
redisTemplate.boundHashOps(“namehash”).put(“a”,“八戒”):
redisTemplate.boundHashOps(“namehash”).put(“a”,“沙僧”):
去所有的key
redisTemplate.boundHashOps(“namehash”).keys(); set集合
取所有的值
redisTemplate.bounndHashOps(“namehash”).values(); list 集合
根据小key取值
redisTemplate.bounndHashOps(“namehash”).get(“a”): 唐僧。
根据小key删除
redisTemplate.bounndHashOps(“namehash”).delete(“a”) 删除key都是一个套路 唐僧被删。
实际用
redisTemplate.boundHashOps(“大类”).get(”小类型" 入参); 是一个list
如果有就用这个,
没有查出来put
redisTemplate.boundHashOps(“大类”).put(”小类型",list);
那么在增删改的时候就要删除缓存
redisTemplate.boundHashOps(“大类”).delete(大类.getid());
修改的时候会有个特殊的情况,就是分类的id变了。 那么两类的缓存都要删
删除的时候要先查分组id 否则无法查了