SpringBoot配置第三方专业缓存技术Memcached 下载 安装 整合测试 2024年5000字详解

简介: SpringBoot配置第三方专业缓存技术Memcached 下载 安装 整合测试 2024年5000字详解

Memcached下载和安装

是一个国内使用量还是比较大的技术

打开文件夹

我们需要在命令行窗口启动

注意要以管理员方式运行

先尝试进入指定文件

然后又再次运行

下载

memcached.exe -d install

启动

memcached.exe -d start

停止

memcached.exe -d stop

memcached.exe -d install
memcached.exe -d start
memcached.exe -d stop

我们打开任务管理器 发现成功运行

Memcached缓存技术

问题是springboot提供整合技术

还没有纳入到整合中

需要使用硬编码的方式实现给客户端初始化管理

我们打开idea

首先得导入坐标

<!--        memcached的依赖-->
        <dependency>
            <groupId>com.google.code.maven-play-plugin.spy</groupId>
            <artifactId>memcached</artifactId>
            <version>2.4.2</version>
        </dependency>

因为springboot没有整合

根本没有配置

所以我们直接采取硬编码的形式

找到业务层的实现类

准备书写代码

我们做一个配置类

目的是为了让Mencached被spring容器加载

配置一个客户端对象

然后加载为spring容器的bean

package com.example.demo.config;
 
import net.rubyeye.xmemcached.MemcachedClient;
import net.rubyeye.xmemcached.MemcachedClientBuilder;
import net.rubyeye.xmemcached.XMemcachedClientBuilder;
import net.spy.memcached.MemcachedClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
 
import java.io.IOException;
 
@Configuration
public class XMemcachedConfig {
 
    @Bean
    public MemcachedClient getmemcachedClient() throws IOException {
        //配置服务器端口
        MemcachedClientBuilder memcachedClientBuilder = new XMemcachedClientBuilder("localhost:11211");
        //构建启动
        MemcachedClient memcachedClient=memcachedClientBuilder.build();
        return memcachedClient;
    }
 
}

我们直接进行依赖注入

我们接下来补全业务层的代码

书写完毕

package com.example.demo.service.impl;
 
import com.example.demo.domain.SMSCode;
import com.example.demo.service.SMSCodeService;
import com.example.demo.utils.CodeUtils;
import net.rubyeye.xmemcached.MemcachedClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CachePut;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
 
@Service
public class SMSCodeServiceImpl implements SMSCodeService {
 
    @Autowired
    private CodeUtils codeUtils;
 
    @Autowired
    private MemcachedClient memcachedClient;
 
    //以下是Springboot中使用xmemcached
 
    @Override
    public String sendCodeToSMS(String tele) {
        String code=codeUtils.generator(tele);
        try{
            memcachedClient.set(tele,0,code);
        }catch (Exception e){
            e.printStackTrace();
        }
        return code;
    }
 
    @Override
    public boolean checkCode(SMSCode smsCode) {
        String code=null;
        try{
            code=memcachedClient.get(smsCode.getTele().toString());
        }catch (Exception e){
            e.printStackTrace();
        }
        return smsCode.getCode().equals(code);
    }
}

我们要去改一下缓存的注释

我们把之前采用的缓存方案全部注释掉

# 专门用来配置的对象datasource
spring:
  datasource:
    druid:
      driver-class-name: com.mysql.cj.jdbc.Driver
      url: jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC
      username: root
      password: 123456
  devtools:
    restart:
      # 设置不参与热部署的文件或文件夹
      exclude: static/**,public/**,config/application.yml

启动成功

去postman发起请求测试

我们通过修改客户端的数值

能改变一些设置

如设置缓存失效时间

硬编码

就是手搓客户端对象

然后交给spring容器管理后

在业务层的实现类注入

使用缓存的时候使用set

获取缓存数据的时候使用get

但是我们这边还有个问题

就是在书写客户端的时候

这个数据应该从配置文件里去处理

先写一个类

这个类有成员属性 代表的是各种配置信息

我们需要做的是自定义配置

memcached:
  servers: localhost:11211
  poolSize: 10
  opTimeout: 3000

然后在类里面去读取

package com.example.demo.config;
 
 
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
 
@Component
@ConfigurationProperties(prefix = "memcached")
@Data
public class XMemcachedProperties {
    private String servers;
    private int poolSize;
    private long opTimeout;
}

这样我们的类就能成功加载

@Component注解又能让这个类被spring容器管理

我们在这边直接注入就行

只不过是数值换了一个地方加载

package com.example.demo.config;
 
import net.rubyeye.xmemcached.MemcachedClient;
import net.rubyeye.xmemcached.MemcachedClientBuilder;
import net.rubyeye.xmemcached.XMemcachedClientBuilder;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
 
import java.io.IOException;
 
@Configuration
public class    XMemcachedConfig {
 
    @Autowired
    private XMemcachedProperties memcachedProperties;
 
    @Bean
    public MemcachedClient getmemcachedClient() throws IOException {
        //配置服务器端口
        MemcachedClientBuilder memcachedClientBuilder = new XMemcachedClientBuilder(memcachedProperties.getServers());
        //配置数据库连接池最大连接量
        memcachedClientBuilder.setConnectionPoolSize(memcachedProperties.getPoolSize());
        //配置缓存时间
        memcachedClientBuilder.setConnectTimeout(memcachedProperties.getOpTimeout());
        //构建启动
        MemcachedClient memcachedClient=memcachedClientBuilder.build();
        return memcachedClient;
    }
 
}

发起请求

成功

目录
相关文章
|
10月前
|
人工智能 Java 测试技术
Spring Boot 集成 JUnit 单元测试
本文介绍了在Spring Boot中使用JUnit 5进行单元测试的常用方法与技巧,包括添加依赖、编写测试类、使用@SpringBootTest参数、自动装配测试模块(如JSON、MVC、WebFlux、JDBC等),以及@MockBean和@SpyBean的应用。内容实用,适合Java开发者参考学习。
1121 0
|
6月前
|
Java 测试技术 数据库连接
【SpringBoot(四)】还不懂文件上传?JUnit使用?本文带你了解SpringBoot的文件上传、异常处理、组件注入等知识!并且带你领悟JUnit单元测试的使用!
Spring专栏第四章,本文带你上手 SpringBoot 的文件上传、异常处理、组件注入等功能 并且为你演示Junit5的基础上手体验
1076 3
|
7月前
|
Java 测试技术 数据安全/隐私保护
通过yaml文件配置自动化测试程序
通过yaml文件可以将自动化测试环境,测试数据和测试行为分开,请看一下案例
282 4
|
8月前
|
XML Ubuntu Java
如何在Ubuntu系统上安装和配置JMeter和Ant进行性能测试
进入包含 build.xml 的目录并执行:
375 13
|
10月前
|
人工智能 Java 测试技术
SpringBoot 测试实践:单元测试与集成测试
在 Spring Boot 测试中,@MockBean 用于创建完全模拟的 Bean,替代真实对象行为;而 @SpyBean 则用于部分模拟,保留未指定方法的真实实现。两者结合 Mockito 可灵活控制依赖行为,提升测试覆盖率。合理使用 @ContextConfiguration 和避免滥用 @SpringBootTest 可优化测试上下文加载速度,提高测试效率。
499 5
|
9月前
|
Java 测试技术 Spring
简单学Spring Boot | 博客项目的测试
本内容介绍了基于Spring Boot的博客项目测试实践,重点在于通过测试驱动开发(TDD)优化服务层代码,提升代码质量和功能可靠性。案例详细展示了如何为PostService类编写测试用例、运行测试并根据反馈优化功能代码,包括两次优化过程。通过TDD流程,确保每项功能经过严格验证,增强代码可维护性与系统稳定性。
350 0
|
存储 人工智能 编译器
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
975 11
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
|
12月前
|
SQL 缓存 关系型数据库
MySQL8.4 Enterprise安装Firewall及测试
MySQL8.4 Enterprise安装Firewall及测试
407 0
|
人工智能 测试技术 API
Windows用户必备:Postman v11详细安装指南与API测试入门教程(附官网下载
Postman是全球领先的API开发与测试工具,支持REST、SOAP、GraphQL等协议调试。2025年最新版v11新增AI智能生成测试用例、多环境变量同步等功能,适用于前后端分离开发、自动化测试、接口文档自动生成及团队协作共享API资源。本文详细介绍Postman的软件定位、核心功能、安装步骤、首次配置、基础使用及常见问题解答,帮助用户快速上手并高效利用该工具进行API开发与测试。
|
Linux Memcache
Linux - 安装memcached
Linux - 安装memcached
327 0
Linux - 安装memcached

热门文章

最新文章

下一篇
开通oss服务