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使用”的问题,朋友们可以点击主页了解更多内容,希望可以够帮助大家!
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1348250.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复