当前位置: 首页 > news >正文

Memcached 服务搭建和集成使用的详细步骤示例

以下是 Memcached 服务搭建和集成使用的详细步骤示例:

一、搭建 Memcached 服务
  1. 安装 Memcached

    • Linux 系统
      • yum 安装:执行命令 yum install -y memcached memcached-devel
      • 源码安装
        • 下载源码:wget http://www.memcached.org/files/memcached-1.5.17.tar.gz
        • 解压:tar zxf memcached-1.5.17.tar.gz
        • 进入目录:cd memcached-1.5.17
        • 配置:./configure --prefix=/usr/local/memcached
        • 编译安装:make && make install
    • Windows 系统
      • 下载安装包:memcached-win64。
      • 解压到指定目录,如 D:\memcached
  2. 启动 Memcached

    • Linux 系统
      • 启动命令:/usr/local/memcached/bin/memcached -d -u root -m 64m -p 11211 -c 1024 -l 0.0.0.0
      • 参数说明:
        • -d:以守护进程方式运行。
        • -u root:指定运行用户。
        • -m 64m:分配 64MB 内存。
        • -p 11211:监听端口。
        • -c 1024:最大并发连接数。
        • -l 0.0.0.0:监听所有 IP 地址。
      • 设置为开机启动:
        • 复制启动脚本:cp /usr/local/memcached/scripts/memcached.sysv /etc/init.d/memcached
        • 修改脚本:sed -i 's/USER=nobody/USER=root/g' /etc/init.d/memcached
        • 设置权限:chmod +x /etc/init.d/memcached
        • 添加开机启动:chkconfig --level 345 memcached on
    • Windows 系统
      • 以管理员身份打开命令行。
      • 安装服务:D:\memcached\memcached.exe -d install
      • 启动服务:net start memcached
二、集成 Memcached 到应用程序
  1. 添加依赖
    • Maven 项目
      • pom.xml 中添加依赖:
<dependency><groupId>net.spy</groupId><artifactId>spymemcached</artifactId><version>2.12.3</version>
</dependency>
  1. 配置 Memcached 连接
    • application.propertiesapplication.yml 中添加配置:
# application.yml
spring:memcached:servers: 127.0.0.1:11211pool:maxTotal: 100maxIdle: 20minIdle: 10
  1. 创建配置类
    • 创建 MemcachedConfig 类:
@Configuration
public class MemcachedConfig {@Value("${spring.memcached.servers}")private String servers;@Beanpublic MemcachedClient memcachedClient() throws IOException {MemcachedClient client = new MemcachedClient(AddrUtil.getAddresses(servers.split(",")));return client;}
}
  1. 使用 Memcached 缓存数据
    • 创建服务类 CacheService
@Service
public class CacheService {@Autowiredprivate MemcachedClient memcachedClient;public void setToCache(String key, Object value, int expire) {try {memcachedClient.set(key, expire, value);} catch (Exception e) {e.printStackTrace();}}public Object getFromCache(String key) {try {return memcachedClient.get(key);} catch (Exception e) {e.printStackTrace();return null;}}
}
  1. 在业务逻辑中使用缓存
    • 在控制器或服务层中注入 CacheService 并使用:
@RestController
public class UserController {@Autowiredprivate CacheService cacheService;@GetMapping("/user/{id}")public User getUser(@PathVariable Long id) {String key = "user_" + id;User user = (User) cacheService.getFromCache(key);if (user == null) {user = userRepository.findById(id).orElse(null);if (user != null) {cacheService.setToCache(key, user, 3600); // 缓存一小时}}return user;}
}
三、测试 Memcached 缓存
  1. 编写测试用例
    • 创建 CacheServiceTest 类:
@RunWith(SpringRunner.class)
@SpringBootTest
public class CacheServiceTest {@Autowiredprivate CacheService cacheService;@Testpublic void testCache() {String key = "test_key";String value = "Hello, Memcached!";cacheService.setToCache(key, value, 60); // 缓存一分钟String result = (String) cacheService.getFromCache(key);assertEquals(value, result);// 等待超过缓存时间try {Thread.sleep(60000);} catch (InterruptedException e) {e.printStackTrace();}result = (String) cacheService.getFromCache(key);assertNull(result);}
}
  1. 运行测试
    • 执行测试用例,验证缓存功能是否正常。

通过以上步骤,您已成功搭建 Memcached 服务并将其集成到应用程序中,实现了数据的缓存功能。

相关文章:

  • STM32-DMA数据转运(8)
  • MyBatis与MyBatis-Plus深度分析
  • 测试报告--博客系统
  • vue3父子组件传值
  • Linux系统编程---Signal信号集
  • Datawhale PyPOTS时间序列5月第1次笔记
  • 【速写】TRL:Trainer的细节与思考(PPO/DPO+LoRA可行性)
  • JavaWeb 开发的核心基础知识
  • 2025-05-13 学习记录--Python-条件判断:if语句 + if-else语句 + if-elif-else语句 + match语句
  • 码蹄集——分解、数组最大公约数、孪生质数、卡罗尔数、阶乘数
  • The Deep Learning Compiler: A Comprehensive Survey (深度学习编译器:全面调查)
  • py7zr解压文件时报错CrcError(crc32, f.crc32, f.filename)
  • Kubernetes 入门笔记
  • 磁盘存储链式的 B 树与 B+ 树
  • 数据库原理实验:视图与索引
  • Python训练打卡Day23
  • Biba安全模型详解:守护信息系统完整性的基石
  • 网络安全-等级保护(等保) 2-3 GB/T 22240—2020《信息安全技术 网络安全等级保护定级指南》-2020-04-28发布【现行】
  • JAVA:synchronized总结
  • 大模型核心运行机制
  • 亚马逊图书网上商城/seo技术中心
  • 环球贸易网站/seo站点
  • 襄樊网站开发/软件培训机构哪家好
  • 帮别人做诈骗网站技术/海洋网络推广效果
  • 自适应网站一般做多大尺寸/国内重大新闻十条
  • 百捷网站建设工资/链接生成二维码