• SpringBoot 操作 Redis


    导入对应版本的依赖

    <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-data-redisartifactId>
    dependency>
    
    • 1
    • 2
    • 3
    • 4

    修改配置文件中的信息

    spring:
      redis:
        host: 127.0.0.1
        port: 8888
    
    • 1
    • 2
    • 3
    • 4

    注意: 我这里 xshell 中将 redis 的端口映射到了本机的 8888 端口, 你们映射了啥, 这里的 port 就写啥
    在这里插入图片描述


    写代码

    SpringBoot 是通过 redisTemplate 对象Redis 进行操作
    redisTemplate 对 Redis 中的每个类型进行了封装, 使用对应类型的对应方法要先选择操作类型
    在这里插入图片描述


    String 类型

    @Autowired
    privateStringRedisTemplate redisTemplate;
    
    @RequestMapping("/testString")
    public void testString() {
        redisTemplate.opsForValue(). set("key1", "value1");
        redisTemplate.opsForValue(). set("key2", "value2");
        redisTemplate.opsForValue(). set("key3", "value3");
    
        System.out.println(redisTemplate.opsForValue().get("key1"));
        System.out.println(redisTemplate.opsForValue().get("key2"));
        System.out.println(redisTemplate.opsForValue().get("key3"));
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    List 类型

    @Autowired
    private StringRedisTemplate redisTemplate;
    
    @RequestMapping("/testList")
    public void testList() {
        //删库操作
        redisTemplate.execute((RedisConnection connection) -> {
            // execute 要求我们的回调方法中, 必须返回一个内容
            // 该回调返回的对象, 就是 execute 返回的内容
            connection.flushAll();
            return null;
        });
    
        redisTemplate.opsForList().leftPush("key", "val");
        redisTemplate.opsForList().leftPush("key", "val2");
        redisTemplate.opsForList().leftPush("key", "val3");
    
        System.out.println(redisTemplate.opsForList().rightPop("key"));
        System.out.println(redisTemplate.opsForList().rightPop("key"));
        System.out.println(redisTemplate.opsForList().rightPop("key"));
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    Set 类型

    @Autowired
    private StringRedisTemplate redisTemplate;
    
    @RequestMapping("testSet")
    public void testSet() {
        redisTemplate.execute((RedisConnection connection) -> {
            connection.flushAll();
            return null;
        });
    
        redisTemplate.opsForSet().add("key", "111", "222","333");
        System.out.println(redisTemplate.opsForSet().members("key"));
        System.out.println(redisTemplate.opsForSet().isMember("key", "111"));
        System.out.println(redisTemplate.opsForSet().isMember("key", "444"));
        System.out.println(redisTemplate.opsForSet().size("key"));
        redisTemplate.opsForSet().remove("key", "111","222");
        System.out.println(redisTemplate.opsForSet().members("key"));
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    Hash 类型

    @Autowired
    private StringRedisTemplate redisTemplate;
    
    @RequestMapping("/testHash")
    public void testHash() {
        redisTemplate.execute((RedisConnection connection) -> {
            connection.flushAll();
            return null;
        });
    
        redisTemplate.opsForHash().put("key", "f1", "111");
        redisTemplate.opsForHash().put("key", "f2", "222");
        redisTemplate.opsForHash().put("key", "f3", "333");
    
        System.out.println((String) redisTemplate.opsForHash().get("key", "f1"));
        System.out.println((String) redisTemplate.opsForHash().get("key", "f2"));
        System.out.println((String) redisTemplate.opsForHash().get("key", "f3"));
    
        System.out.println(redisTemplate.opsForHash().hasKey("key", "f1"));
    
        redisTemplate.opsForHash().delete("key", "f1");
        redisTemplate.opsForHash().delete("key", "f2");
    
        System.out.println(redisTemplate.opsForHash().size("key"));
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    ZSet 类型

    @Autowired
    private StringRedisTemplate redisTemplate;
    
    @RequestMapping("/testZSet")
    public void testZSet() {
        redisTemplate.execute((RedisConnection connection) -> {
            connection.flushAll();
            return null;
        });
    
        redisTemplate.opsForZSet().add("key", "zhangsan", 10);
        redisTemplate.opsForZSet().add("key", "lisi", 20);
        redisTemplate.opsForZSet().add("key", "wangwu", 30);
    
        Set<String> members = redisTemplate.opsForZSet().range("key", 0, -1);
        System.out.println(members);
    
        Set<ZSetOperations.TypedTuple<String>> membersWithScore =
                redisTemplate.opsForZSet().rangeWithScores("key", 0, -1);
        System.out.println(membersWithScore);
    
        System.out.println(redisTemplate.opsForZSet().score("key", "zhangsan"));
    
        redisTemplate.opsForZSet().remove("key", "zhangsan");
    
        System.out.println(redisTemplate.opsForZSet().size("key"));
    
        System.out.println(redisTemplate.opsForZSet().rank("key", "lisi"));
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

  • 相关阅读:
    【vue3】可编辑el-table
    hdlbits系列verilog解答(always块nolatch语句)-36
    蓝天转债,双良转债上市价格预测
    【JavaScript】JS执行机制以及三种对象讲解
    9.2-Docker使用
    计算机毕业设计Java校园社团管理平台(源码+系统+mysql数据库+Lw文档)
    Springboot毕设项目高校心理咨询系统y34td(java+VUE+Mybatis+Maven+Mysql)
    自动化测试工具Selenium & Appium
    最近很火的国产接口神器Apipost体验
    FPGA片内FIFO读写测试实验(异步FIFO设计)
  • 原文地址:https://blog.csdn.net/shianla/article/details/138033277