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;
    }
 
}

发起请求

成功

目录
相关文章
|
8月前
|
Web App开发 人工智能 JavaScript
主流自动化测试框架的技术解析与实战指南
本内容深入解析主流测试框架Playwright、Selenium与Cypress的核心架构与适用场景,对比其在SPA测试、CI/CD、跨浏览器兼容性等方面的表现。同时探讨Playwright在AI增强测试、录制回放、企业部署等领域的实战优势,以及Selenium在老旧系统和IE兼容性中的坚守场景。结合六大典型场景,提供技术选型决策指南,并展望AI赋能下的未来测试体系。
|
11月前
|
安全 Unix Linux
Metasploit Pro 4.22.7-2025050101 发布 - 专业渗透测试框架
Metasploit Pro 4.22.7-2025050101 发布 - 专业渗透测试框架
285 10
Metasploit Pro 4.22.7-2025050101 发布 - 专业渗透测试框架
|
12月前
|
安全 Ubuntu Linux
Metasploit Pro 4.22.7-2025042101 发布 - 专业渗透测试框架
Metasploit Pro 4.22.7-2025042101 (Linux, Windows) - 专业渗透测试框架
335 5
Metasploit Pro 4.22.7-2025042101 发布 - 专业渗透测试框架
|
6月前
|
SQL 安全 Linux
Metasploit Pro 4.22.8-20251014 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.8-20251014 (Linux, Windows) - 专业渗透测试框架
312 1
Metasploit Pro 4.22.8-20251014 (Linux, Windows) - 专业渗透测试框架
|
7月前
|
安全 Linux 网络安全
Metasploit Pro 4.22.8-2025091701 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.8-2025091701 (Linux, Windows) - 专业渗透测试框架
451 2
Metasploit Pro 4.22.8-2025091701 (Linux, Windows) - 专业渗透测试框架
|
7月前
|
人工智能 Java 测试技术
单元测试覆盖率的自动控制技术
Jacoco是Java程序覆盖率工具,可以在pom.xml通过配置来自动控制程序的覆盖率
170 5
|
7月前
|
缓存 安全 Linux
Metasploit Pro 4.22.8-2025082101 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.8-2025082101 (Linux, Windows) - 专业渗透测试框架
278 0
|
10月前
|
安全 Linux 网络安全
Metasploit Pro 4.22.7-2025061201 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.7-2025061201 (Linux, Windows) - 专业渗透测试框架
330 3
Metasploit Pro 4.22.7-2025061201 (Linux, Windows) - 专业渗透测试框架
|
8月前
|
人工智能 资源调度 jenkins
精准化回归测试:大厂实践与技术落地解析
在高频迭代时代,全量回归测试成本高、效率低,常导致关键 bug 漏测。精准化测试通过代码变更影响分析,智能筛选高价值用例,显著提升测试效率与缺陷捕获率,实现降本增效。已被阿里、京东、腾讯等大厂成功落地,成为质量保障的新趋势。
|
11月前
|
安全 Unix Linux
Metasploit Pro 4.22.7-2025052201 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.7-2025052201 (Linux, Windows) - 专业渗透测试框架
213 5
Metasploit Pro 4.22.7-2025052201 (Linux, Windows) - 专业渗透测试框架

热门文章

最新文章

下一篇
开通oss服务