本篇博客只介绍 redis 作为缓存的的一些使用,以及在项目中如何把redis和spring如何集成。
1:redis的maven依赖,redis 依赖 spring-redis 依赖;
redis.clients jedis ${redis.version} org.springframework.data spring-data-redis ${spring.redis.version}
2:redis 配置 整合spring的配置
接下来就可以在项目中使用redis了,这里使用的是spring的redisTemplate,只需要在项目中注入 redisTemplate 就可以直接使用了。
以下为使用redisTemplate来操作redis;
1:redis 中自增的操作:这种自增是原子性的,可以用在高并发的场景,如 库存的秒杀
ApplicationContext ctx = new ClassPathXmlApplicationContext("spring-redis.xml"); RedisTemplate redisTemplate = (RedisTemplate) ctx.getBean("redisTemplate"); // redis 自增 Long beppe = redisTemplate.opsForValue().increment("beppe", 2); System.out.println(beppe);
2:String 类型的操作
// String 类型 ValueOperations valueOpe = redisTemplate.opsForValue(); valueOpe.set("user:name","哈哈哈"); String userName = (String)valueOpe.get("user:name"); System.out.println(userName);
3:list操作;
// List 类型 list是不去重存储 ListOperations listOps = redisTemplate.opsForList(); listOps.leftPush("user:redis","beppe1"); listOps.leftPush("user:redis","beppe2"); listOps.leftPush("user:redis","beppe3"); List list = listOps.range("user:redis", 0, -1); //这里 0,-1 表示获取 list 所有内容// String o = (String)listOps.leftPop("user:redis"); System.out.println(list);
4:Hash 操作;
// hash 类型 有两种操作形式 1:put 一个元素一个元素添加 putAll 一次性添加一个Map HashOperations opHash = redisTemplate.opsForHash();// opHash.put("mykey1","city1","shanghai");// opHash.put("mykey2","city2","beijing"); HashMapmap = new HashMap<>(); map.put("city1","shanghai1"); map.put("city2","shanghai2"); map.put("city3","shanghai3"); map.put("city4","shanghai4"); opHash.putAll("citya:redis",map); Map entries = opHash.entries("citya:redis"); System.out.println(entries);
5:set类型操作;
// set类型 SetOperations setOper = redisTemplate.opsForSet(); Setset = new HashSet (); set.add("beppe1"); set.add("beppe2"); set.add("beppe2"); set.add("beppe3"); setOper.add("set:redis",set); Set pop = (Set )setOper.pop("set:redis"); for (String str: pop) { System.out.println(str); }
以上几种就是redis存储数据的几种数据结构的操作;
下篇博客会 介绍使用 redis 来实现发布订阅的功能;