重生之 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);
    }

}
  • 运行结果
相关推荐
Love__Tay2 小时前
笔记/云计算基础
笔记·学习·云计算
保持学习ing3 小时前
day1--项目搭建and内容管理模块
java·数据库·后端·docker·虚拟机
susu10830189114 小时前
Debian 11 Bullseye 在线安装docker
运维·docker·debian
傲祥Ax4 小时前
Redis总结
数据库·redis·redis重点总结
love530love4 小时前
Docker 稳定运行与存储优化全攻略(含可视化指南)
运维·人工智能·windows·docker·容器
人生匆匆5 小时前
docker进入启动失败的容器
运维·docker·容器
wuxuanok5 小时前
Web后端开发-分层解耦
java·笔记·后端·学习
wuxuanok6 小时前
Web后端开发-请求响应
java·开发语言·笔记·学习
i7i8i9com6 小时前
后端微服务基础架构Spring Cloud
学习
蜡笔小电芯7 小时前
【C语言】指针与回调机制学习笔记
c语言·笔记·学习