如何在 Ubuntu 24.04 上安装 Memcached 服务器教程

news/2025/1/11 4:46:41/

简介

Memcached 是一个高性能、分布式的内存缓存系统,旨在通过减少数据库负载来加速动态 Web 应用程序。它通过将数据和对象缓存在 RAM 中来实现这一点,从而最大限度地减少了从数据库或其他慢速存储层重复获取数据的需要。

本教程的目标是手把手教你如何在 Ubuntu 24.04 服务器上安装 Memcached。

安装和配置步骤

第一步:更新你的系统

首先,通过运行以下命令确保你的系统是最新的:

sudo apt update
sudo apt upgrade -y

第二步:安装 Memcached

通过运行以下命令来安装 Memcached:

sudo apt install memcached -y

执行以下命令来验证 Memcached 的安装:

memcached --version

输出:

memcached 1.6.24

这个命令应该会显示 Memcached 的版本。

第三步:配置 Memcached

Memcached 的主要配置文件位于 /etc/memcached.conf。在你喜欢的文本编辑器中打开这个文件。例如:

sudo nano /etc/memcached.conf

在这个文件中,你可以设置内存大小、默认端口、IP 地址和其他选项。以下是一些重要的配置:

内存使用:设置用于对象存储的最大内存量。

-m 64

默认端口:设置 Memcached 将监听的端口。

-p 11211

IP 地址:指定 Memcached 将监听的 IP 地址。默认情况下,它会监听所有可用的地址。

-l 127.0.0.1

取消注释 -c 1024 指令以限制同时进行的 Memcached 连接的数量。将 1024 替换为你期望的连接数。

-c 1024

在完成必要的更改后,保存并关闭文件。

要应用更改,请使用以下命令重启 Memcached 服务:

sudo systemctl restart memcached

要确保 Memcached 正常运行,请使用以下命令检查其状态:

sudo systemctl status memcached

第四步:测试 Memcached

你可以使用 telnet 命令来测试 Memcached 是否正常工作。首先,安装 telnet:

sudo apt install telnet -y

然后,连接到 Memcached:

telnet 127.0.0.1 11211

你应该会看到类似这样的提示:

Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.

要测试存储和检索数据,请使用以下命令:

set mykey 0 900 4
data

此命令设置一个键为 mykey,值为 data

要检索存储的值:

get mykey

输出:

VALUE mykey 0 4
data
END

要退出 telnet,请键入:

quit

第五步:连接到 Memcached

Memcached 与多种应用程序框架兼容,如 PHP、Perl、Python、Ruby 和 Java。请按照以下步骤连接到 Memcached 并使用 PHP 测试应用程序。

安装 PHP 和 Memcached 模块。

sudo apt install php php-memcached -y

创建一个新的示例 PHP 脚本来连接到 Memcached。

nano memcached.php

将以下内容添加到文件中。

<?php
$memcached = new Memcached();
$memcached->setOption(Memcached::OPT_BINARY_PROTOCOL, true);
$memcached->addServer('127.0.0.1', 11211);
$memcached->setSaslAuthData('example-user', 'strong-password');// Set and retrieve a value to test the connection
$memcached->set('example', 'Greetings from HostMyCode!');
echo $memcached->get('example');
?>

保存并关闭文件。

上面的 PHP 脚本连接到 Memcached。一个带有值 “Greetings from HostMyCode!” 的新键 example 被添加到 Memcached 内存中,并使用应用程序中的 $memcached 变量检索。

使用 PHP 运行脚本以测试与 Memcached 的连接。

php memcached.php

输出:

Greetings from HostMyCode!

第六步:保护 Memcached

出于安全考虑,最好将 Memcached 绑定到 localhost 接口以防止未经授权的访问。确保 /etc/memcached.conf 中的 -l 选项设置为 127.0.0.1

-l 127.0.0.1

此外,考虑设置防火墙来限制对 Memcached 端口(11211)的访问。

使用 ufw(Uncomplicated Firewall)来限制对 Memcached 端口(11211)的访问。

如果尚未启用 ufw,请启用它:

sudo ufw enable

仅允许来自 localhost 的访问:

sudo ufw allow from 127.0.0.1 to any port 11211

验证防火墙规则:

sudo ufw status

使用 SASL 身份验证(可选)

可以使用 SASL 支持编译 Memcached 以启用身份验证。如果你需要使用身份验证来保护你的 Memcached 服务器,你可以使用 SASL 支持来编译 Memcached。这比较复杂,如果你已经将 Memcached 绑定到 localhost 并使用防火墙,则可能没有必要。

在启动时启用 Memcached。要确保 Memcached 在启动时自动启动,请启用该服务:

sudo systemctl enable memcached

结尾

在本教程中,我们成功地了解了如何在 Ubuntu 24.04 服务器上安装 Memcached。你可以将其与你的应用程序集成,通过缓存数据来提高性能。

如果你有任何其他问题或需要进一步的帮助,请随时提问!

我的博客:https://blog.ivwv.site


http://www.ppmy.cn/news/1562156.html

相关文章

电压控制环与电流控制环

电压控制环和电流控制环是电力电子系统和电机控制中常见的两种控制策略。 一、电压控制环与电流控制环的比较 电压控制环&#xff1a; 特点&#xff1a;电压控制环通常用于稳压应用&#xff0c;通过调整输出电压以维持其稳定在设定值。由于电压是二阶系统&#xff0c;具有滞后…

Kafka核心参数与使用02

一、从基础的客户端说起 Kafka 提供了非常简单的生产者&#xff08;Producer&#xff09;和消费者&#xff08;Consumer&#xff09;API。通过引入相应依赖后&#xff0c;可以快速上手编写生产者和消费者的示例。 1. 消息发送者主流程 一个最基础的 Producer 发送消息的步骤…

【每日学点鸿蒙知识】跳转三方地图、getStringSync性能、键盘避让模式等

1、跳转三方地图导航页 类似于Android 跳转到地图APP 导航页面&#xff1a; // 目标地点的经纬度和名称 double destinationLat 36.547901; double destinationLon 104.258354; String destinationName "目的地名称"; // 构建URI Uri uri Uri.parse("…

运行vue项目,显示“npm”无法识别为 cmdlet、函数、脚本文件或可操作程序的名称

PS D:\weduproject\wedu1\wedu\wedu-fast-vue> npm run dev&#xff0c;运行时出现像下面这样的报红信息&#xff0c; npm : The term npm is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or …

Nginx:HTTP 方法控制

什么是 HTTP 方法控制? HTTP 方法控制 是指在 Nginx 中配置规则,以限制哪些 HTTP 请求方法被允许访问特定资源。HTTP 定义了多种请求方法,每种方法都有其特定用途: GET:用于请求获取指定资源。POST:用于向指定资源提交数据,通常用于提交表单或上传文件。PUT:用于更新指…

pandas系列----DataFrame简介

DataFrame是Pandas库中最常用的数据结构之一&#xff0c;它是一个类似于二维数组或表格的数据结构。DataFrame由多个列组成&#xff0c;每个列可以是不同的数据类型&#xff08;如整数、浮点数、字符串等&#xff09;。每列都有一个列标签&#xff08;column label&#xff09;…

【微服务】6、限流 熔断

线程隔离与容错处理 本视频主要讲解了在购物车业务中&#xff0c;因商品微服务响应慢导致的问题及解决方案&#xff0c;重点介绍了线程隔离后查询购物车业务不可用的情况&#xff0c;以及如何通过Fallback逻辑进行缓解&#xff0c;包括配置Feign调用为簇点资源、添加Fallback逻…

QT-TCP-server

为了实现高性能的TCP通讯&#xff0c;以下是一个基于Qt的示例&#xff0c;展示如何利用多个线程、非阻塞I/O、数据分块和自定义协议进行优化。该示例以TCP服务器和客户端的形式展示&#xff0c;能够承受高负载并实现快速数据传输。 高性能TCP Server示例 #include <QTcpSe…