当前位置:首页 > 行业动态 > 正文

如何正确开启并使用Memcached服务?

要开启并使用 Memcached,首先需要安装 Memcached 软件,然后在配置文件中设置相关参数,最后启动 Memcached 服务。

Memcached 开启与使用指南

背景介绍

随着互联网用户数量的不断增加和数据量的急剧增长,高效地存储和访问数据成为了现代互联网应用面临的重要挑战,Memcached 作为一种高性能、分布式内存对象缓存系统,通过减少数据库负载来加速动态Web应用,从而显著提高数据访问速度,本文将详细介绍如何在不同操作系统上安装、配置和使用 Memcached。

一、Memcached

1 什么是 Memcached?

Memcached 是一个开源的、高性能的、分布式的内存对象缓存系统,主要用于加速动态Web应用,减轻数据库负载,它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高数据访问速度,Memcached 特别适用于那些读多写少、对数据一致性要求不高的应用场景。

2 Memcached 的特点

高性能:数据存储在内存中,访问速度极快。

分布式:支持在多台服务器之间分布缓存,轻松扩展。

简单性:协议简单,操作容易上手。

可扩展性:可以轻松增加或减少缓存服务器以适应访问量的变化。

非持久化:数据默认不会持久化到磁盘,重启后数据会丢失,Memcached 不适用于需要高数据一致性的场景。

3 Memcached 的工作原理

Memcached 客户端和服务器端通过基于文本的协议进行通信,客户端发送命令(如设置键值对、获取键值对、删除键值对等)到 Memcached 服务器,服务器根据请求操作内存中的键值对存储,并将结果返回给客户端。

二、安装 Memcached

2.1 在 Ubuntu 上安装 Memcached

1、更新系统包列表

 sudo apt-get update

2、安装 Memcached

 sudo apt-get install memcached

3、启动 Memcached 服务

 sudo systemctl start memcached

4、设置 Memcached 开机自启

 sudo systemctl enable memcached

5、验证安装

 sudo systemctl status memcached

2.2 在 CentOS 上安装 Memcached

1、更新系统包列表

 sudo yum update -y

2、安装 EPEL 库

 sudo yum install epel-release -y

3、安装 Memcached

 sudo yum install memcached -y

4、启动 Memcached 服务

 sudo systemctl start memcached

5、设置 Memcached 开机自启

 sudo systemctl enable memcached

6、验证安装

 sudo systemctl status memcached

2.3 在 Windows 上安装 Memcached

1、下载 Memcached

从 [Memcached 官方网站](https://memcached.org/)下载预编译的二进制文件。

2、解压文件

将下载的压缩包解压到一个合适的目录,例如C:memcached

3、启动 Memcached

打开命令提示符(CMD)。

导航到解压目录,

 cd C:memcachedmemcached-1.6.8

启动 Memcached:

 memcached.exe -d install

设置为开机启动:

 memcached.exe -d set start_type automatic

启动服务:

 net start memcached

4、验证安装

打开命令提示符(CMD)。

输入以下命令查看服务状态:

 sc query memcached

三、配置 Memcached

1 编辑配置文件

Memcached 的配置文件通常位于/etc/memcached.conf,可以使用文本编辑器打开该文件进行编辑:

sudo vim /etc/memcached.conf

2 配置选项说明

-d:以后台守护进程方式运行。

-m <num>:设置 Memcached 使用的内存大小,单位为 MB。-m 1024 表示使用 1024 MB。

-p <port>:设置 Memcached 监听的端口,默认为 11211,建议使用大于 1024 的非特权端口。

-u <user>:指定运行 Memcached 的用户。-u root

-l <address>:绑定到指定的 IP 地址,如果设置为0.0.0.0,则表示接受所有 IP 地址的连接。

-c <number>:设置最大并发连接数,默认为 1024。

-P <file>:指定保存 Memcached 的 PID 文件的位置。-P /tmp/memcached.pid

3 示例配置

以下是一个示例配置文件内容:

-d           # 以后台守护进程方式运行
-m 1024      # 分配 1024 MB 内存给 Memcached
-p 11211     # 监听 11211 端口
-u root      # 以 root 用户身份运行
-l 0.0.0.0   # 监听所有网络接口
-c 2048      # 设置最大并发连接数为 2048
-P /tmp/memcached.pid # 指定保存 PID 文件的位置

四、使用 Memcached

1 常用操作命令

4.1.1 启动 Memcached 服务

sudo systemctl start memcached

4.1.2 停止 Memcached 服务

sudo systemctl stop memcached

4.1.3 重启 Memcached 服务

sudo systemctl restart memcached

4.1.4 查看 Memcached 服务状态

sudo systemctl status memcached

2 基本使用方法

4.2.1 设置键值对

使用set 命令设置键值对:

echo "set mykey 0 900 5" | nc localhost 11211
echo "hello world" | nc localhost 11211

上述命令设置了一个键为mykey,值为hello world,过期时间为 900 秒(15分钟),flags 为 0,长度为 5。

4.2.2 获取键值对

使用get 命令获取键值对:

echo "get mykey" | nc localhost 11211

如果键存在,Memcached 将返回对应的值,否则返回END

4.2.3 删除键值对

使用delete 命令删除键值对:

echo "delete mykey" | nc localhost 11211

成功删除返回DELETED,否则返回NOT_FOUND

3 客户端工具的使用

4.3.1 Telnet

Telnet 是一个基本的客户端工具,可以用来测试 Memcached,使用以下命令连接到本地的 Memcached 服务器:

telnet 127.0.0.1 11211

连接后,可以输入 Memcached 命令进行交互。

set mykey 0 900 5
hello world

获取键值对:

get mykey

删除键值对:

delete mykey

退出 Telnet:

quit

4.3.2 Via the command line (命令行工具)

一些发行版提供了命令行工具memcached,可以直接在终端中使用:

/usr/bin/memcached -d -m 1024 -u root -l 127.0.0.1 -p 11211 -c 1024 -P /tmp/memcached.pid

或者使用nc(Netcat):

echo "stats" | nc localhost 11211

查看当前连接数、命中率等信息。

4.3.3 Python 客户端示例(pylibmc)

Pylibmc 是一个 Python Memcached 客户端库,可以方便地在 Python 应用中使用 Memcached,首先安装 pylibmc:

pip install pylibmc

然后可以使用以下代码操作 Memcached:

import pylibmc
连接到 Memcached 服务器
mc = pylibmc.Client(["127.0.0.1"], binary=True)
设置键值对
mc.set("mykey", "hello world")
print("Set mykey to 'hello world'")
获取键值对
value = mc.get("mykey")
print(f"The value of 'mykey' is: {value}")
删除键值对
mc.delete("mykey")
print("Deleted 'mykey'")

这段代码演示了如何使用 pylibmc 连接 Memcached,进行基本的设置、获取和删除操作。

4.4 PHP 客户端示例(phpmemcached)

PHP 提供了phpmemcached 扩展来操作 Memcached,首先安装扩展:

sudo pecl install memcached

然后在 PHP 代码中使用:

<?php
// 连接到 Memcached 服务器
$memcached = new Memcached();
$memcached->addServer('localhost', 11211);
// 设置键值对
$memcached->set('mykey', 'hello world');
echo "Set 'mykey' to 'hello world'";
// 获取键值对
$value = $memcached->get('mykey');
echo "The value of 'mykey' is: $value";
// 删除键值对
$memcached->delete('mykey');
echo "Deleted 'mykey'";
?>

这段代码演示了如何在 PHP 中使用phpmemcached 扩展连接 Memcached,并进行基本的设置、获取和删除操作。

五、常见问题及解决方案

5.1 Memcached 无法启动或崩溃的原因及解决方法

检查配置文件:确保配置文件中的参数正确无误,特别是内存大小、端口号和监听地址,如果配置文件有误,可能会导致 Memcached 无法启动,可以使用以下命令检查配置文件语法是否正确:

 sudo memcached -d -m 1024 -u root -l 127.0.0.1 -p 11211 -c 1024 -P /tmp/memcached.pid -vv > /tmp/memcached.log 2>&1 &

查看日志文件/tmp/memcached.log,查找错误信息,如果配置文件有误,修正后重新启动 Memcached,如果内存设置过大,可能会导致 Memcached 无法分配足够的内存而崩溃,确保系统有足够的可用内存,可以使用以下命令检查系统的可用内存:

 free -h
   ``调整-m 参数的值,使其不超过系统的可用内存,如果系统只有 2GB 的内存,可以将-m 设置为512`:

sudo memcached -d -m 512 -u root -l 127.0.0.1 -p 11211 -c 1024 -P /tmp/memcached.pid -vv > /tmp/memcached.log 2>&1 &

“`确保配置文件中的用户具有足够的权限运行 Memcached,如果权限不足,可能会导致 Memcached 无法正常启动或崩溃,可以使用以下命令修改配置文件的权限:

 sudo chown root:root /etc/memcached.conf
   sudo chmod 600 /etc/memcached.conf
   ``如果问题仍未解决,可以尝试切换到其他用户(例如nobody`)运行 Memcached:

sudo memcached -d -m 1024 -u nobody -l 127.0.0.1 -p 11211 -c 1024 -P /tmp/memcached.pid -vv > /tmp/memcached.log 2>&1 &

“`检查系统日志和 Memcached 日志,查找可能的错误信息,可以使用以下命令查看系统日志:

 sudo journalctl -xe | grep memcached
   ```查看 Memcached 日志:

sudo cat /tmp/memcached.log | grep error | less -S

如果日志中显示内存不足错误,可以尝试减小-m` 参数的值,如果日志中显示权限问题,可以尝试修改配置文件的权限或切换到其他用户运行 Memcached,如果日志中显示其他错误信息,可以根据错误信息进行相应的排查和解决,如果以上方法都无法解决问题,可以尝试重新安装 Memcached:先卸载已安装的 Memcached,然后重新安装最新版本的 Memcached,可以使用以下命令卸载和重新安装 Memcached:Ubuntu:

 sudo apt-get remove --purge memcached libmemcached-dev -y
   sudo apt-get autoremove -y
   sudo apt-get clean all -y
   sudo apt-get update && apt-get upgrade -y
   sudo apt-get install memcached libmemcached-dev -y
   ``CentOS:(注意:CentOS 7及更早版本使用yum,CentOS 8及更高版本使用dnf`)CentOS 7:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun:yun;CentOS8:dnf:dnf:dnf:dnf:dnf:dnf:dnf:dnf:dnf:dnf:dnf:dnf:dnf:dnf:dnf:dnf:dnf:dnf:dnf:dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dnf;dn

以上就是关于“memcached 开启_Memcached使用”的问题,朋友们可以点击主页了解更多内容,希望可以够帮助大家!

0