0


【Redis入门到精通六】在Spring Boot中集成Redis(含配置和操作演示)

Spring Boot中集成Redis

  1. Spring社区也自定义了一套Redis的客户端,与jedis的操作方式有所差异,Spring中把每个类型的操作都单独封装了起来。下面就让我来带大家了解如何在Spring Boot项目中使用Redis

1.项目创建和环境配置

1.第一步创建Spring Boot项目,在创建项目时勾选NoSQL中的Spring Data Redis,然后等待项目加载。

2.第二步在application.yml中配置Redis服务地址

  1. spring:
  2. data:
  3. redis:
  4. host: 127.0.0.1
  5. port: 8888

如果需要进行redis集群的配置可以使用下面的配置项:

  1. spring:
  2. data:
  3. redis:
  4. cluster:
  5. nodes:
  6. - 172.30.0.101:6379
  7. - 172.30.0.102:6379
  8. - 172.30.0.103:6379
  9. - 172.30.0.104:6379
  10. - 172.30.0.105:6379
  11. - 172.30.0.106:6379
  12. - 172.30.0.107:6379
  13. - 172.30.0.108:6379
  14. - 172.30.0.109:6379
  15. lettuce:
  16. cluster:
  17. refresh:
  18. adaptive: true
  19. period: 2000
  1. 下⽅的 lettuce 系列配置,⽬的是为了⾃动刷新集群的拓扑结构。当集群中有节点宕机/加⼊新节点之后, 我们的代码能够⾃动感知到集群的变化。由于上述 ip 都是 docker 容器的 ip windows 主机上不能直接访问。因此需要把程序打成 jar 包, 部署到 linux 上,再通过 java -jar [jar包名] 的⽅式执⾏。

3.第三步引入StringRedisTemplate实例,便可以通过redisTemplate进行Redis的相关操作了。

  1. @RestController
  2. public class MyController {
  3. @Autowired
  4. private StringRedisTemplate redisTemplate;
  5. }

2.基本操作演示

1.String类型操作演示:

  1. @RestController
  2. public class MyController {
  3. @Autowired
  4. private StringRedisTemplate redisTemplate;
  5. @GetMapping("/testString")
  6. public String testString(){
  7. redisTemplate.opsForValue().set("key","value");
  8. String value = redisTemplate.opsForValue().get("key");
  9. System.out.println(value);
  10. redisTemplate.delete("key");
  11. return "OK";
  12. }
  13. }

在上述代码中,我们通过调用redisTemplate的opsForValue方法可以得到一个专门操作Redis中String类型的对象,通过这个对象的操作我们便可以得到如下结果:

2.List类型操作演示:

  1. @GetMapping("/testList")
  2. @ResponseBody
  3. public String testList() {
  4. redisTemplate.opsForList().leftPush("key", "a");
  5. redisTemplate.opsForList().leftPushAll("key", "b", "c", "d");
  6. List<String> values = redisTemplate.opsForList().range("key", 1, 2);
  7. System.out.println(values);
  8. redisTemplate.delete("key");
  9. return "OK";
  10. }

在上述代码中,我们通过调用redisTemplate的opsForList方法可以得到一个专门操作Redis中List类型的对象,通过这个对象的操作我们便可以得到如下结果:

3.Set类型操作演示:

  1. @GetMapping("/testSet")
  2. @ResponseBody
  3. public String testSet() {
  4. redisTemplate.opsForSet().add("key", "aaa", "bbb", "ccc");
  5. boolean ok = redisTemplate.opsForSet().isMember("key", "aaa");
  6. System.out.println(ok);
  7. redisTemplate.opsForSet().remove("key", "aaa");
  8. long n = redisTemplate.opsForSet().size("key");
  9. System.out.println(n);
  10. redisTemplate.delete("key");
  11. return "OK";
  12. }

在上述代码中,我们通过调用redisTemplate的opsForSet方法可以得到一个专门操作Redis中Set类型的对象,通过这个对象的操作我们便可以得到如下结果:

4.Hash类型操作演示:

  1. @GetMapping("/testHashmap")
  2. @ResponseBody
  3. public String testHashmap() {
  4. redisTemplate.opsForHash().put("key", "name", "zhangsan");
  5. String value = (String) redisTemplate.opsForHash().get("key", "name");
  6. System.out.println(value);
  7. redisTemplate.opsForHash().delete("key", "name");
  8. boolean ok = redisTemplate.opsForHash().hasKey("key", "name");
  9. System.out.println(ok);
  10. redisTemplate.delete("key");
  11. return "OK";
  12. }

在上述代码中,我们通过调用redisTemplate的opsForHash方法可以得到一个专门操作Redis中Hash类型的对象,通过这个对象的操作我们便可以得到如下结果:

5.Sorted Set类型操作演示:

  1. @GetMapping("/testZSet")
  2. @ResponseBody
  3. public String testZSet() {
  4. redisTemplate.opsForZSet().add("key", "吕布", 100);
  5. redisTemplate.opsForZSet().add("key", "赵云", 98);
  6. redisTemplate.opsForZSet().add("key", "典⻙", 95);
  7. Set<String> values = redisTemplate.opsForZSet().range("key", 0, 2);
  8. System.out.println(values);
  9. long n = redisTemplate.opsForZSet().count("key", 95, 100);
  10. System.out.println(n);
  11. redisTemplate.delete("key");
  12. return "OK";
  13. }

在上述代码中,我们通过调用redisTemplate的opsForZSet方法可以得到一个专门操作Redis中Sorted Set类型的对象,通过这个对象的操作我们便可以得到如下结果:


本文转载自: https://blog.csdn.net/2203_75565612/article/details/142460372
版权归原作者 小皮侠 所有, 如有侵权,请联系我们删除。

“【Redis入门到精通六】在Spring Boot中集成Redis(含配置和操作演示)”的评论:

还没有评论