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

}
  • 运行结果
相关推荐
沫离痕33 分钟前
windows安装docker实例
windows·docker·容器
报错小能手1 小时前
线程池学习(七)实现定时(调度)线程池
学习
●VON1 小时前
从模型到价值:MLOps 工程体系全景解析
人工智能·学习·制造·von
好奇龙猫1 小时前
【人工智能学习-AI-MIT公开课第 18. 表示:分類、軌跡、過渡】
学习
hhcccchh2 小时前
学习vue第八天 Vue3 模板语法和内置指令 - 简单入门
前端·vue.js·学习
浩瀚地学3 小时前
【Java】异常
java·开发语言·经验分享·笔记·学习
主公不搬砖3 小时前
Nacos 2.5.2 国产信创 kingbase适配
java·docker·nacos·信创·kingbase·国产适配
Nan_Shu_6144 小时前
学习: Threejs (3)& Threejs (4)
学习
ysy16480672394 小时前
Docker安装(Windows版)
windows·docker·容器
DemonAvenger4 小时前
Redis慢查询分析与优化:性能瓶颈排查实战指南
数据库·redis·性能优化