• 【Redis】Java Spring操作redis


    引入Redis依赖

    在这里插入图片描述
    在这里插入图片描述

    StringRedisTemplate

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    此处RedisTemplate是把这些操作Redis的方法,分成了几个类别,分门别类的来组织的。
    此处提供的一些接口风格,和原生的Redis命令就有一定的差异。

    使用String

     @GetMapping("/testString")
        @ResponseBody
        public String testString() {
            redisTemplate.execute((RedisConnection connection) -> {
                // execute 要求回调方法中必须 return 语句,返回个东西
                connection.flushAll();
                return null;
            });
            redisTemplate.opsForValue().set("key", "111");
            redisTemplate.opsForValue().set("key2", "222");
            redisTemplate.opsForValue().set("key3", "333");
    
            String value = redisTemplate.opsForValue().get("key");
            System.out.println("value:" + value);
    
            return "OK";
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    在这里插入图片描述

    使用List

    @GetMapping("/testList")
        @ResponseBody
        public String testList() {
            // 先清除之前的数据.
            redisTemplate.execute((RedisConnection connection) -> {
                // execute 要求回调方法中必须 return 语句,返回个东西
                connection.flushAll();
                return null;
            });
            redisTemplate.opsForList().leftPush("key", "111");
            redisTemplate.opsForList().leftPush("key", "222");
            redisTemplate.opsForList().leftPush("key", "333");
    
            String value = redisTemplate.opsForList().rightPop("key");
            System.out.println("value:" + value);
            value = redisTemplate.opsForList().rightPop("key");
            System.out.println("value:" + value);
            value = redisTemplate.opsForList().rightPop("key");
            System.out.println("value:" + value);
    
            return "OK";
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    在这里插入图片描述

    使用Set

     @GetMapping("/testSet")
        @ResponseBody
        public String testSet() {
            redisTemplate.execute((RedisConnection connection) -> {
                // execute 要求回调方法中必须 return 语句,返回个东西
                connection.flushAll();
                return null;
            });
    
            redisTemplate.opsForSet().add("key", "111", "222", "333");
            Set<String> result = redisTemplate.opsForSet().members("key");
            System.out.println("result:" + result);
    
            Boolean exists = redisTemplate.opsForSet().isMember("key", "111");
            System.out.println("exists:" + exists);
    
            Long count = redisTemplate.opsForSet().size("key");
            System.out.println("count:" + count);
    
            redisTemplate.opsForSet().remove("key", "111", "222");
            result = redisTemplate.opsForSet().members("key");
            System.out.println("result:" + result);
    
            return "OK";
        }
    
    • 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

    在这里插入图片描述

    使用hash

    @GetMapping("/testHash")
        @ResponseBody
        public String testHash() {
            redisTemplate.execute((RedisConnection connection) -> {
                // execute 要求回调方法中必须 return 语句,返回个东西
                connection.flushAll();
                return null;
            });
    
            redisTemplate.opsForHash().put("key", "f1", "111");
            redisTemplate.opsForHash().put("key", "f2", "222");
            redisTemplate.opsForHash().put("key", "f3", "333");
    
            String value = (String) redisTemplate.opsForHash().get("key", "f1");
            System.out.println("value:" + value);
    
            Boolean exists = redisTemplate.opsForHash().hasKey("key", "f1");
            System.out.println("exists:" + exists);
    
            redisTemplate.opsForHash().delete("key", "f1", "f2");
    
            Long size = redisTemplate.opsForHash().size("key");
            System.out.println("size:" + size);
    
            value = (String) redisTemplate.opsForHash().get("key", "f1");
            System.out.println("value:" + value);
    
            return "OK";
        }
    
    • 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

    在这里插入图片描述

    使用zset

    @GetMapping("/testZSet")
        @ResponseBody
        public String testZSet() {
            redisTemplate.execute((RedisConnection connection) -> {
                // execute 要求回调方法中必须 return 语句,返回个东西
                connection.flushAll();
                return null;
            });
    
            redisTemplate.opsForZSet().add("key", "zhangsan", 50.0);
            redisTemplate.opsForZSet().add("key", "lisi", 80.0);
            redisTemplate.opsForZSet().add("key", "wangwu", 100.0);
    
            Set<String> members = redisTemplate.opsForZSet().range("key", 0, -1);
            System.out.println("members:" + members);
    
            Set<ZSetOperations.TypedTuple<String>> membersWithScore = redisTemplate.opsForZSet().rangeWithScores("key", 0, -1);
            System.out.println("membersWithScore:" + membersWithScore);
    
            Double score = redisTemplate.opsForZSet().score("key", "zhangsan");
            System.out.println("score:" + score);
    
            redisTemplate.opsForZSet().remove("key", "zhangsan");
    
            Long size = redisTemplate.opsForZSet().size("key");
            System.out.println("size:" + size);
    
            Long rank = redisTemplate.opsForZSet().rank("key", "lisi");
            System.out.println("rank:" + rank);
    
            return "OK";
        }
    
    • 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
    • 30
    • 31
    • 32

    在这里插入图片描述

  • 相关阅读:
    读书笔记:《跨越山丘:刑辩律师丁一元办案实录》
    游戏中的语音聊天方案
    idea java新建项目详细步骤
    LeetCode刷题(十)——顺序刷题46至50
    Java SE 12 新增特性
    利用根升余弦滤波器和整数倍内插的多相结构生成含采样频偏的过采样信号
    在线系统运行慢,对其进行性能分析以及处置的方法【总结】
    vue diff 算法学习
    扁平化iOS风商务工作汇报PPT模板
    gRPC 基础概念详解
  • 原文地址:https://blog.csdn.net/weixin_61341342/article/details/133840026