零基础学习Redis(14) -- Spring中使用Redis

1. 依赖与配置

Spring官方也对Redis的命令进行了封装,在创建项目时导入对应的依赖即可使用:

此外我们还需要写一些配置信息:

复制代码
spring:
  application:
  name: springRedis
  data:
    redis:
      port: 6379
      host: 127.0.0.1

Spring提供了一个RedisTemplate类用来操作Redis,这里的StringRedisTemplate是RedisTemplate的一个子类用来专门处理字符串数据的。Spring中的接口风格和原生的Redis命令有一定的差异,Spring操作redis的方法分成了几个类别分别组织起来,例如这里的opsForHash()方法可以得到一个专门操作hash类型的对象,其类型也是如此

2. 操作String类型

我们使用opsForValue方法可以获得操作String类型的对象,可以看到其中有许多相关的方法我们直接使用即可:

java 复制代码
    @RequestMapping("/testString")
    public String testString() {
        redisTemplate.opsForValue().set("key1", "v1");
        redisTemplate.opsForValue().set("key2", "v2");
        redisTemplate.opsForValue().set("key3", "v3");
        return redisTemplate.opsForValue().get("key3");
    }

注意spring并没有封装全部的redis命令,例如flushall,如果我们想要执行这些没有被封装的 命令可以使用execute()方法:

java 复制代码
        redisTemplate.execute((RedisConnection connection) -> {
            connection.flushAll();
            return null;
        });

通过这里的connection就可以执行redis原生的命令

3. 操作List

java 复制代码
    @RequestMapping("/testList")
    public List<String> testList() {
        redisTemplate.execute((RedisConnection connection) -> {
            connection.flushAll();
            return null;
        });
        redisTemplate.opsForList().leftPush("list1", "333");
        redisTemplate.opsForList().leftPush("list1", "222");
        redisTemplate.opsForList().leftPush("list1", "111");
        redisTemplate.opsForList().rightPush("list1", "444");
        return redisTemplate.opsForList().range("list1", 0, -1);
    }

4. 操作set

java 复制代码
    @RequestMapping("/testSet")
    public Set<String> testSet() {
        redisTemplate.execute((RedisConnection connection) -> {
            connection.flushAll();
            return null;
        });
        redisTemplate.opsForSet().add("set1", "111", "222", "333");
        System.out.println(redisTemplate.opsForSet().size("set1"));
        return redisTemplate.opsForSet().members("set1");

    }

5. 总结

在spring中提供的方法只要大家对于redis命令足够熟悉相信是能够正常的猜测出每个方法的具体作用,不够熟悉的也可以在spring的官方网站上进行查询,关于redis基础使用的学习到这里就基本完结了。

相关推荐
用户094248568031 小时前
第19章:库存扣减与秒杀系统:Redis 扛峰值流量
redis·架构·源码
爱写Bug的浮游1 小时前
RTA高频请求下的Redis短缓存工程闭环
redis
没有气的汽水1 小时前
redis加了个分片,把线上写挂了一个多小时
redis
La Pulga1 小时前
【FreeRTOS源码学习笔记】空闲任务与阻塞延时
笔记·mcu·学习·嵌入式·freertos·实时操作系统
蒸蒸yyyyzwd1 小时前
秋招学习笔记 day106
笔记·学习
小李不想当小白2 小时前
WDG看门狗(STM32标准库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·嵌入式
xixiaoyunya2 小时前
Redis缓存三大问题实战:穿透、击穿、雪崩,我用一个电商秒杀场景讲清楚
数据库·redis·缓存
Flynn Liang3 小时前
上线后怎么排查 AI 调用?Spring AI Observability:token/延迟/成本埋点与全链路追踪
java·人工智能·spring·监控·可观测性·observability·springai
鶴哥只手遮天4 小时前
《Redis 8.10.3 深度剖析》系列 · 第 1 章·全景与源码地图:版本谱系、构建体系、全局状态与启动链路
redis·后端·开源
70后写java的老码农4 小时前
docker-compose 部署 Redis Stack Server 6.2.6-v19
redis·docker