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

目录

[Spring Boot中集成Redis](#Spring Boot中集成Redis)

1.项目创建和环境配置

2.基本操作演示


Spring Boot中集成Redis

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

1.项目创建和环境配置

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

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

复制代码
spring:
  data:
    redis:
      host: 127.0.0.1
      port: 8888

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

复制代码
spring:
  data:
    redis:
      cluster:
        nodes:
          - 172.30.0.101:6379
          - 172.30.0.102:6379
          - 172.30.0.103:6379
          - 172.30.0.104:6379
          - 172.30.0.105:6379
          - 172.30.0.106:6379
          - 172.30.0.107:6379
          - 172.30.0.108:6379
          - 172.30.0.109:6379
      lettuce:
        cluster:
          refresh:
          adaptive: true
          period: 2000

下的 lettuce 系列配置,的是为了动刷新集群的拓扑结构。当集群中有节点宕机/加新节点之后,我们的代码能够动感知到集群的变化。由于上述 ip 都是 docker 容器的 ip,在 windows 主机上不能直接访问。因此需要把程序打成 jar 包,部署到 linux 上,再通过 java -jar [jar包名] 的式执。

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

复制代码
@RestController
public class MyController {
    @Autowired
    private StringRedisTemplate redisTemplate;
}

2.基本操作演示

1.String类型操作演示:

复制代码
@RestController
public class MyController {
    @Autowired
    private StringRedisTemplate redisTemplate;

    @GetMapping("/testString")
    public String testString(){
        redisTemplate.opsForValue().set("key","value");
        String value = redisTemplate.opsForValue().get("key");
        System.out.println(value);

        redisTemplate.delete("key");
        return "OK";
    }
}

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

2.List类型操作演示:

复制代码
    @GetMapping("/testList")
    @ResponseBody
    public String testList() {
        redisTemplate.opsForList().leftPush("key", "a");
        redisTemplate.opsForList().leftPushAll("key", "b", "c", "d");
        List<String> values = redisTemplate.opsForList().range("key", 1, 2);
        System.out.println(values);
        redisTemplate.delete("key");
        return "OK";
    }

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

3.Set类型操作演示:

复制代码
    @GetMapping("/testSet")
    @ResponseBody
    public String testSet() {
        redisTemplate.opsForSet().add("key", "aaa", "bbb", "ccc");
        boolean ok = redisTemplate.opsForSet().isMember("key", "aaa");
        System.out.println(ok);
        redisTemplate.opsForSet().remove("key", "aaa");
        long n = redisTemplate.opsForSet().size("key");
        System.out.println(n);
        redisTemplate.delete("key");
        return "OK";
    }

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

4.Hash类型操作演示:

复制代码
    @GetMapping("/testHashmap")
    @ResponseBody
    public String testHashmap() {
        redisTemplate.opsForHash().put("key", "name", "zhangsan");
        String value = (String) redisTemplate.opsForHash().get("key", "name");
        System.out.println(value);
        redisTemplate.opsForHash().delete("key", "name");
        boolean ok = redisTemplate.opsForHash().hasKey("key", "name");
        System.out.println(ok);
        redisTemplate.delete("key");
        return "OK";
    }

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

5.Sorted Set类型操作演示:

复制代码
    @GetMapping("/testZSet")
    @ResponseBody
    public String testZSet() {
        redisTemplate.opsForZSet().add("key", "吕布", 100);
        redisTemplate.opsForZSet().add("key", "赵云", 98);
        redisTemplate.opsForZSet().add("key", "典?", 95);
        Set<String> values = redisTemplate.opsForZSet().range("key", 0, 2);
        System.out.println(values);
        long n = redisTemplate.opsForZSet().count("key", 95, 100);
        System.out.println(n);
        redisTemplate.delete("key");
        return "OK";
    }

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

相关推荐
IvorySQL12 小时前
PostgreSQL 分区表的 ALTER TABLE 语句执行机制解析
数据库·postgresql·开源
·云扬·13 小时前
MySQL 8.0 Redo Log 归档与禁用实战指南
android·数据库·mysql
IT邦德13 小时前
Oracle 26ai DataGuard 搭建(RAC到单机)
数据库·oracle
biyezuopinvip13 小时前
基于Spring Boot的企业网盘的设计与实现(任务书)
java·spring boot·后端·vue·ssm·任务书·企业网盘的设计与实现
惊讶的猫13 小时前
redis分片集群
数据库·redis·缓存·分片集群·海量数据存储·高并发写
JavaGuide13 小时前
一款悄然崛起的国产规则引擎,让业务编排效率提升 10 倍!
java·spring boot
不爱缺氧i13 小时前
完全卸载MariaDB
数据库·mariadb
期待のcode13 小时前
Redis的主从复制与集群
运维·服务器·redis
纤纡.13 小时前
Linux中SQL 从基础到进阶:五大分类详解与表结构操作(ALTER/DROP)全攻略
linux·数据库·sql
jiunian_cn13 小时前
【Redis】渐进式遍历
数据库·redis·缓存