重生之 SpringBoot3 入门保姆级学习(20、场景整合 Docker 的 Redis 对接与基础使用)

重生之 SpringBoot3 入门保姆级学习(20、场景整合 Docker 的 Redis 对接与基础使用)

    • [6.3 整合 Redis](#6.3 整合 Redis)

6.3 整合 Redis


1、创建新项目编写 application.properties 配置文件

# redis 配置
spring.data.redis.host=192.168.1.4
spring.data.redis.port=6379
  • 如果不知道主机号的请执行下面代码找到 192.168 开头的局域网地址

    ifconfig

2、创建 RedisTestController 测试类

java 复制代码
package com.zhong.redis.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @ClassName : RedisTestController
 * @Description :
 * @Author : zhx
 * @Date: 2024-06-14 15:13
 */
@RestController
public class RedisTestController {
    @Autowired
    StringRedisTemplate redisTemplate;

    @GetMapping("/count")
    public String count() {
        Long count = redisTemplate.opsForValue().increment("count");
        // TODO 常见数据类型 k:v value可以有很多类型
        //
        //  string: 普通字符串:  redisTemplate.opsForValue()
        //  list    列表:       redisTemplate.opsForList()
        //  set:    集合:       redisTemplate.opsForset()
        //  zset:   有序集合:    redisTemplate.opsForzset()
        //  hash:   map结构:    redisTemplate.opsForHash()
        
        return "访问了[ " + count + " ]次";
    }
}

3、运行后浏览器访问 地址 刷新测试

http://localhost:8080/count

4、查看虚拟机的 Docker 中的 Redis 是否响应

  • Redis 的常用操作演示
java 复制代码
package com.zhong.redis;

import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.core.ZSetOperations;

@SpringBootTest
class Boot307RedisApplicationTests {
    // TODO 常见数据类型 k:v value可以有很多类型
    //
    //  string: 普通字符串:  redisTemplate.opsForValue()
    //  list    列表:       redisTemplate.opsForList()
    //  set:    集合:       redisTemplate.opsForset()
    //  zset:   有序集合:    redisTemplate.opsForzset()
    //  hash:   map结构:    redisTemplate.opsForHash()
    @Autowired
    StringRedisTemplate redisTemplate;

    @Test
    void testSting() {
        redisTemplate.opsForValue().set("name", "张三");
        String name = redisTemplate.opsForValue().get("name");
        System.out.println(name);
    }

    @Test
    void testList() {
        String listName = "listtest";
        redisTemplate.opsForList().leftPush(listName, "1");
        redisTemplate.opsForList().leftPush(listName, "2");
        redisTemplate.opsForList().leftPush(listName, "3");
        String leftPop = redisTemplate.opsForList().leftPop(listName);
        Assertions.assertEquals("3", leftPop);
    }

    @Test
    void testSet() {
        String setName = "settest";
        redisTemplate.opsForSet().add(setName, "1");
        redisTemplate.opsForSet().add(setName, "2");
        redisTemplate.opsForSet().add(setName, "2");
        redisTemplate.opsForSet().add(setName, "2");
        redisTemplate.opsForSet().add(setName, "3");
        Boolean aBoolean = redisTemplate.opsForSet().isMember(setName, "2");
        Boolean bBoolean = redisTemplate.opsForSet().isMember(setName, "5");
        Assertions.assertTrue(aBoolean);
        Assertions.assertFalse(bBoolean);
    }

    @Test
    void testZset() {
        String setName = "zsettest";
        redisTemplate.opsForZSet().add(setName, "小钟", 100);
        redisTemplate.opsForZSet().add(setName, "小王", 99);
        redisTemplate.opsForZSet().add(setName, "小小", 1);
        redisTemplate.opsForZSet().add(setName, "小大", 2);

        ZSetOperations.TypedTuple<String> popMax = redisTemplate.opsForZSet().popMax(setName);
        String value = popMax.getValue();
        Double score = popMax.getScore();
        System.out.println(value + "====>" + score);
    }

    @Test
    void testHash() {
        String setName = "amap";
        redisTemplate.opsForHash().put(setName,"name","张三");
        redisTemplate.opsForHash().put(setName,"age","18");
        Object name = redisTemplate.opsForHash().get(setName, "name");
        System.out.println(name);
    }

}
  • 运行结果
相关推荐
一休哥助手12 分钟前
Redis 五种数据类型及底层数据结构详解
数据结构·数据库·redis
彤银浦12 分钟前
python学习记录7
python·学习
少女忧14 分钟前
51单片机学习第六课---B站UP主江协科技
科技·学习·51单片机
盒马盒马1 小时前
Redis:zset类型
数据库·redis
邓校长的编程课堂1 小时前
助力信息学奥赛-VisuAlgo:提升编程与算法学习的可视化工具
学习·算法
missmisslulu2 小时前
电容笔值得买吗?2024精选盘点推荐五大惊艳平替电容笔!
学习·ios·电脑·平板
漫无目的行走的月亮2 小时前
在Docker中运行微服务注册中心Eureka
docker
yunhuibin2 小时前
ffmpeg面向对象——拉流协议匹配机制探索
学习·ffmpeg
hengzhepa2 小时前
ElasticSearch备考 -- Search across cluster
学习·elasticsearch·搜索引擎·全文检索·es
Jay_fearless3 小时前
Redis SpringBoot项目学习
spring boot·redis