Memcached是一种高性能的分布式内存缓存系统,旨在通过缓存数据库调用等频繁操作来加快动态网络应用程序请求的速度。它将数据存储在内存中,以便快速检索,是提高持续运行数据库查询的应用程序性能和响应速度的重要工具。

虽说在Debian 12上安装Memcached服务很简单,但还是记录一下。

方法一:通过默认APT存储库安装Memcached

最新的Memcached版本可在Debian 12的默认软件仓库中找到。为了要确保拥有最新的软件包版本和安全更新,还是从更新Debian系统开始。运行以下命令:

sudo apt update && sudo apt upgrade

运行以下命令九可以通过APT软件包管理器安装Memcached:

sudo apt install memcached libmemcached-tools

此命令同时安装Memcached和libmemcached-tools软件包。libmemcached-tools软件包提供了额外的命令行实用程序,可与Memcached进行更多交互和管理。

方法二:通过源代码安装Memcached

如果想使用最新版本的Memcached,或根据特定要求进行定制和创建,从源代码安装会比较有用。
首先,访问Memcached最新版本页面查找当前版本。使用wget命令直接下载:

wget https://memcached.org/latest

接下来,运行以下命令提取下载的源代码:

tar -xvf latest

在继续之前,切换到解压缩后的目录。目录名称取决于下载的版本:

cd memcached-{版本号}

{版本号}替换为实际版本号。
在编译Memcached之前,需要安装必要的构建依赖项。执行如下命令安装:

sudo apt install build-essential libevent-dev gcc make libc6-dev

用于安装的软件包有以下用途:

  • gcc:著名的C语言编译器,用于编译Memcached
  • make:自动编译源文件
  • libc6-dev:提供GNU C库和头文件的参考
  • libevent-dev:包含异步事件通知的开发文件

使用--prefix=参数设置安装Memcached二进制文件和库的目录:

./configure --prefix=/usr/local

使用make命令编译Memcached源代码:

make

通过确认当前版本来测试Memcached:

./memcached --version

编译过程完成后,通过运行以下命令安装Memcached:

sudo make install

该命令将在系统中安装 Memcached,使其可通过命令行访问。 为确保系统识别新库,请运行以下命令:

sudo ldconfig

要验证Memcached是否已成功安装,请运行以下命令:

memcached -V

系统将显示已安装的Memcached版本,如果正常显示则表示安装成功。

启用Memcached服务

如果使用方法一,则直接跳到本节最后一步。而如果从源代码安装Memcached时,它不会自动创建systemd服务文件。要将Memcached作为服务运行并使用systemctl管理它,则需要为Memcached创建一个自定义的systemd服务文件。按照以下步骤创建并启用服务:
使用文本编辑器(本例中使用nano,也可以选择vim等其他)在/etc/systemd/system目录中新建一个名为memcached.service的文件:

sudo nano /etc/systemd/system/memcached.service

将以下内容添加到memcached.service文件中:

[Unit]
Description=Memcached Service
After=network.target

[Service]
Type=simple
User=memcache
Group=memcache
ExecStart=/usr/local/bin/memcached /etc/memcached.conf
Restart=always

[Install]
WantedBy=multi-user.target

保存文件并退出编辑器。
创建memcache用户和组,以确保安全运行服务:

sudo useradd -r -s /sbin/nologin -U -M memcache

重新加载systemd配置以识别新的服务文件:

sudo systemctl daemon-reload

最后,启用Memcached服务在系统启动时自动启动:

sudo systemctl enable memcached

管理Memcached服务状态

启动Memcached服务:

sudo systemctl start memcached

查看Memcached状态并验证它是否正在运行:

sudo systemctl status memcached

输出信息如下:

● memcached.service - memcached daemon
     Loaded: loaded (/lib/systemd/system/memcached.service; enabled; preset: enabled)
     Active: active (running) since Sun 2024-07-21 21:03:31 UTC; 41s ago
       Docs: man:memcached(1)
   Main PID: 1537 (memcached)
      Tasks: 10 (limit: 2299)
     Memory: 3.8M
        CPU: 37ms
     CGroup: /system.slice/memcached.service
             └─1537 /usr/bin/memcached -m 64 -p 11211 -u memcache -l 127.0.0.1 -P /var/run/memcached/memcached.pid

停止Memcached服务:

sudo systemctl stop memcached

如果需要重启Memcached服务,例如修改配置后,使用此命令:

sudo systemctl restart memcached

如果希望禁用服务自启动:

sudo systemctl disable memcached

最后,验证Memcached是否使用默认端口11211在本地主机上主动侦听。要确认这一点,请运行以下命令:

ps -ef | grep memcached

输出应该显示一行,表示Memcached正在指定的端口上运行和侦听,如下所示:

memcache    5934       1  0 09:36 ?        00:00:00 /usr/bin/memcached -m 64 -p 11211 -u memcache -l 127.0.0.1 -P /var/run/memcached/memcached.pid
root        6591    3653  0 09:55 pts/0    00:00:00 grep memcached

Memcached配置

Memcached设置主要是通过编辑Memcached.conf文件来进行。以下主要讨论调整侦听IP地址、禁用UDP和更改默认内存分配。
首先,使用文本编辑器(如nano)打开Memcached配置文件,文件位于/etc/memcached.conf
从源代码编译Memcached的用户需要在第一次打开它时创建该文件(因为与APT方法相比,文件内容为空白),你可以复制以下内容并开始调整:

# Example memcached.conf file

# Start with a cap of 64 megs of memory. It's reasonable, and the daemon default
# Note that the daemon will grow to this size, but does not start out holding this much
# memory
-m 64

# Default port is 11211
-p 11211

# Run the daemon as a background process
-d

# Use syslog logging
-s

# Enable verbose logging
-v

# Set the maximum number of simultaneous connections
-c 1024

在上述配置中:

  • -v:设置Memcached日志的冗长程度。 设置为-v时,所有进程活动的详细信息都会添加到Memcached日志中。
  • -l 127.0.0.1:设置 Memcached 用于侦听传入连接的服务器IP地址。环回地址127.0.0.1可使Memcached只接受 localhost 连接。
  • -m 128:设置可分配给Memcached进程的最大内存。
  • -p 11211:设置Memcached在服务器上运行和侦听传入连接时应使用的TCP端口
  • -c 1024:设置Memcached在服务器上处理的最大同时连接数。

重新启动Memcached以应用配置更改:

sudo systemctl restart memcached

使用ss实用程序来验证Memcached是否正在积极运行并监听服务器上的连接请求(或者采用前文中的ps命令):

sudo ss -plunt | grep memcached

显示结果如下:

tcp   LISTEN 0      1024                          127.0.0.1:11211      0.0.0.0:*    users:(("memcached",pid=1635,fd=22))

为Memcached安装PHP库

Memcached为各种编程语言提供了扩展,但它最常用于PHP。运行以下命令:

sudo apt install php-memcached

最后用php -m检查一下已安装的扩展。

参考资料

https://linuxcapable.com/how-to-install-memcached-on-debian-linux/
https://docs.vultr.com/how-to-install-memcached-on-debian-12

最后修改:2025 年 01 月 06 日
如果觉得我的文章对你有用,请随意赞赏