SpringBoot+Redis极简整合

news2024/9/23 9:34:00

1 前言

Redis是现在最受欢迎的NoSQL数据库之一,下面将以最简洁的代码演示,在SpringBoot中使用redis。

2 下载安装Redis

2.1 下载

Redis3.x windows安装版下载地址

2.2 安装到任意位置

一直Next到完即可。
在这里插入图片描述

2.3 启动

打开安装目录,点击redis-server.exe即可启动。
在这里插入图片描述启动成功会弹出命令行,可以看到端口默认是6379。
在这里插入图片描述

3 代码

创建一个名为spring-boot-redis-demo的项目,使用Maven+JDK17。不会的请看 IntelliJ IDEA快速创建Spring Boot项目,最终项目结构,如下图。
在这里插入图片描述

3.1 pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>spring-boot-redis-demo</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <!--  为Spring Boot项目提供一系列默认的配置和依赖管理-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.3.2</version>
        <relativePath/>
    </parent>

    <dependencies>
        <!--  Spring Boot核心依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <!-- Spring Boot单元测试和集成测试的依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!-- Spring Boot构建Web应用程序的依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>

    </dependencies>

</project>

3.2 application.properties

spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.username=
spring.redis.password=

3.3 org/example/Main.java

package org.example;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

@SpringBootApplication
public class Main extends SpringBootServletInitializer {

    public static void main(String[] args) {
        SpringApplication.run(Main.class, args);
    }
}

3.4 org/example/controller/UserController.java

这个是测试类。

package org.example.controller;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;


@Controller
@RequestMapping("/user")
public class UserController {

    @Autowired
    protected RedisTemplate<String, String> redisTemplate;


    @RequestMapping(value = "/set")
    public Object test() {
        String value = "张1";
        redisTemplate.opsForValue().set("key1", value);
        return "set:" + value;
    }


    @RequestMapping(value = "/get")
    public Object getSMSCode() {
        String key1 = redisTemplate.opsForValue().get("key1");
        return "get:" + key1;
    }


}

3.5 org/example/conf/RedisConf.java

这个是redis配置类。

package org.example.conf;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.StringRedisSerializer;


@Configuration
public class RedisConf {

	@Bean
	public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory factory) {
		RedisTemplate<String, String> redisTemplate = new RedisTemplate<>();
		redisTemplate.setConnectionFactory(factory);
		// redisTemplate 的默认序列化方式为 jdkSerializeable,
		// StringRedisTemplate的默认序列化方式为StringRedisSerializer
		StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
		// key序列化方式
		redisTemplate.setKeySerializer(stringRedisSerializer);
		// hash key序列化方式
		redisTemplate.setHashKeySerializer(stringRedisSerializer);
		// value序列化方式
		redisTemplate.setValueSerializer(stringRedisSerializer);
		// hash value序列化方式
		redisTemplate.setHashValueSerializer(stringRedisSerializer);
		// 支持事物
		redisTemplate.setEnableTransactionSupport(false);
		redisTemplate.afterPropertiesSet();
		return redisTemplate;
	}



}

4 测试

  1. 启动项目,打开浏览器访问http://localhost:8080/user/set,set数据。

在这里插入图片描述
2. 启动项目,打开浏览器访问http://localhost:8080/user/get,get数据。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2117286.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数据结构】堆——堆排序与海量TopK问题

目录 前言一、堆排序1.1 整体思路1.2 代码部分1.3 建堆的时间复杂度1.4 堆排序的总结 二、向下调整算法的时间复杂度三、向上调整算法的复杂度四、海量TopK问题4.1 TopK题目 总结 前言 上一篇我们学习了堆的数据结构&#xff0c;现在我们来看看堆的日常应用和排序 一、堆排序 …

内网安全-横向移动【3】

1.域横向移动-内网服务-Exchange探针 Exchange是一个电子右键服务组件&#xff0c;由微软公司开发。它不仅是一个邮件系统&#xff0c;还是一个消息与协作系统。Exchange可以用来构建企业、学校的邮件系统&#xff0c;同时也是一个协作平台&#xff0c;可以基于此开发工作流、…

用广播星历计算卫星运动的平均角速度

用广播星历计算卫星位置 1.计算卫星运动的平均角速度 首先根据广播星历中给出的参数计算参考时刻的平均角速度: 式中&#xff0c;GM为万有引力常数G与地球总质量M之乘积&#xff0c;其值为GM3.98600510^14b m3/s2。 然后根据广播星历中给定的摄动参数计算观测时刻卫星的平均…

模版方法模式template method

学习笔记&#xff0c;原文链接 https://refactoringguru.cn/design-patterns/template-method 超类中定义了一个算法的框架&#xff0c; 允许子类在不修改结构的情况下重写算法的特定步骤。 上层接口有默认实现的方法和子类需要自己实现的方法

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresearch/segment-…

C++-----STL简介(了解)

1. 什么是STL STL(standard template libaray-标准模板库)&#xff1a;是C标准库的重要组成部分&#xff0c;不仅是一个可复用的组件库&#xff0c;而且是一个包罗数据结构与算法的软件框架。 2. STL的版本 原始版本 Alexander Stepanov、Meng Lee 在惠普实验室完成的原始版…

手撕Python之生成器、装饰器、异常

1.生成器 生成器的定义方式&#xff1a;在函数中使用yield yield值&#xff1a;将值返回到调用处 我们需要使用next()进行获取yield的返回值 yield的使用以及生成器函数的返回的接收next() def test():yield 1,2,3ttest() print(t) #<generator object test at 0x01B77…

MATLAB-基于高斯过程回归GPR的数据回归预测

目录 目录 1 介绍 1. 1 高斯过程的基本概念 1.2 核函数&#xff08;协方差函数&#xff09; 1.3 GPR 的优点 1.4. GPR 的局限 2 运行结果 3 核心代码 1 介绍 高斯过程回归&#xff08;Gaussian Process Regression, GPR&#xff09;是一种强大的非参数贝叶斯方法&…

JAVA- 多线程

一&#xff0c;多线程的概念 1.并行与并发 并行&#xff1a;多个任务在同一时刻在cpu 上同时执行并发&#xff1a;多个任务在同一时刻在cpu 上交替执行 2.进程与线程 进程&#xff1a;就是操作系统中正在运行的一个应用程序。所以进程也就是“正在进行的程序”。&#xff0…

Java 数据类型详解:基本数据类型与引用数据类型

在 Java 编程语言中&#xff0c;数据类型主要分为两大类&#xff1a;基本数据类型和引用数据类型。理解这两种类型的区别、使用场景及其转换方式是学习 Java 的基础。本文将深入探讨这两类数据类型的特点&#xff0c;并展示自动类型转换、强制类型转换以及自动拆箱和封箱的使用…

Level3 — PART 3 — 自然语言处理与文本分析

目录 自然语言处理概要 分词与词性标注 N-Gram 分词 分词及词性标注的难点 法则式分词法 全切分 FMM和BMM Bi-direction MM 优缺点 统计式分词法 N-Gram概率模型 HMM概率模型 词性标注(Part-of-Speech Tagging) HMM 文本挖掘概要 信息检索(Information Retr…

AI预测福彩3D采取888=3策略+和值012路或胆码测试9月8日新模型预测第81弹

经过80期的测试&#xff0c;当然有很多彩友也一直在观察我每天发的预测结果&#xff0c;得到了一个非常有价值的信息&#xff0c;那就是9码定位的命中率非常高&#xff0c;70多期一共只错了8次&#xff0c;这给喜欢打私房菜的朋友提供了极高价值的预测结果~当然了&#xff0c;大…

线性代数|机器学习-P36在图中找聚类

文章目录 1. 常见图结构2. 谱聚类 感觉后面几节课的内容跨越太大&#xff0c;需要补充太多的知识点&#xff0c;教授讲得内容跨越较大&#xff0c;一般一节课的内容是书本上的一章节内容&#xff0c;所以看视频比较吃力&#xff0c;需要先预习课本内容后才能够很好的理解教授讲…

代码日常问题 --day01

1.刚开始我遇到的问题 1.1项目场景&#xff1a; 首先&#xff0c;请确认已经成功创建了一个Maven项目。 接下来&#xff0c;为了验证JDK和Maven配置是否正确&#xff0c;我需要访问项目的设置页面。 操作路径是点击“File”菜单栏选项&#xff0c;然后选择“Settings”。 …

可公开的公开学习分享课

2024.9.8AI分享 1、推荐软件 --智谱清言 2、通义灵码 通义灵码官网 3、沉浸式翻译 &#xff08;看英文文献&#xff09; 沉浸式翻译官网 4、aicheck.cc &#xff08;AI 写论文的工具–形成提纲&#xff09;–不免费 AI 写论文的工具 无法挑战可以复制粘贴 5、aminer.cn&…

Nginx 是如何解决惊群效应的?

什么是惊群效应&#xff1f; 第一次听到的这个名词的时候觉得很是有趣&#xff0c;不知道是个什么意思&#xff0c;总觉得又是奇怪的中文翻译导致的。 复杂的说&#xff08;来源于网络&#xff09;TLDR; 惊群效应&#xff08;thundering herd&#xff09;是指多进程&#xff…

养老院管理系统小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;管理员管理&#xff0c;护工管理&#xff0c;老人管理&#xff0c;房间管理&#xff0c;公告信息管理&#xff0c;床位管理&#xff0c;健康信息管理 微信端账号功能包括&#xff1a;系统首页&#xf…

【PyTorch】常用网络层layers总结

文章目录 前言一、Convolution Layers二、Pooling Layers三、Padding Layers总结 前言 PyTorch中网络搭建主要是通过调用layers实现的&#xff0c;这篇文章总结了putorch中最常用的几个网络层接口及其参数。 一、Convolution Layers pytorch官方文档介绍了众多卷积层算法&…

017.PL-SQL编程—函数

我 的 个 人 主 页&#xff1a;&#x1f449;&#x1f449; 失心疯的个人主页 &#x1f448;&#x1f448; 入 门 教 程 推 荐 &#xff1a;&#x1f449;&#x1f449; Python零基础入门教程合集 &#x1f448;&#x1f448; 虚 拟 环 境 搭 建 &#xff1a;&#x1f449;&…

网上花店管理系统小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;管理员管理&#xff0c;客服聊天管理&#xff0c;基础数据管理&#xff0c;论坛交流管理&#xff0c;公告信息管理&#xff0c;用户管理&#xff0c;轮播图信息 微信端账号功能包括&#xff1a;系统首…