在传统应用场景中,大多数 Web 应用通常将数据存储在关系型数据库中(如 MySQL)。Web 服务器从数据库中提取数据并在浏览器中展示。但随着数据量的增加以及访问量的集中,关系型数据库的负荷加重,响应速度变慢,导致网站加载延迟,从而影响用户体验。在这种情况下,我们可以使用 Memcached 数据存储来解决这些问题。
【一】Memcached 简介
Memcached 是一个开源且免费的高性能分布式内存对象缓存系统。它是一种基于内存的键值存储,能够存储任意类型的数据(如字符串、对象等)。在实际工作中,它经常被用于缓存数据库的查询结果,以减少对数据库的访问频率,从而提升动态 Web 应用的运行速度,并增强网站架构的并发处理能力和扩展性。
注意事项:Memcache 是这个项目的名称,而 Memcached 则是其服务器主程序的文件名。
(1)Memcached 的工作原理
Memcached 的工作原理如下:
①检查客户端请求的数据是否已经存储在 Memcached 中,如果是,则直接返回相关数据,无需进一步操作。
②如果数据不在 Memcached 中,则从数据库中查询,并将查询到的数据返回给客户端,同时将这些数据缓存到 Memcached 中。
③当数据库中的数据被更新或删除时,Memcached 中的数据也会相应地进行更新或删除,以保持数据的一致性。
④如果分配给 Memcached 的内存空间已满,Memcached 会使用 LRU(最近最少使用)算法和过期策略,优先替换失效的数据,然后再替换最近未使用的数据。
(2)Memcached 的特点
Memcached 的工作特点如下:
①协议简单:使用基于文本行的协议,可以通过 telnet 直接在 Memcached 服务器上存取数据,操作相对简便。
②基于 libevent 的事件处理:Libevent 是一个用 C 语言开发的程序库,Memcached 利用这个库来进行异步事件处理。
③内置内存管理机制:Memcached 拥有一套高效的内存管理机制,所有数据都保存在其内置的内存中。当存入的数据占满空间时,Memcached 会使用 LRU 算法清理不常用的缓存数据,以腾出内存空间。但需注意,服务器重启后数据会丢失。
④分布式特性:各个 Memcached 服务器之间互不通信,各自独立地进行数据存取。通过客户端的设计实现了分布式特性,能够支持大规模缓存和应用。
【二】Memcached 安装步骤
在 Linux 服务器上安装 Memcached 数据库的过程如下:
1. 安装 libevent
首先,需要检查系统中是否已经安装了 libevent,因为 Memcached 依赖此库。如果系统中已经存在 libevent,可以选择卸载并重新安装。操作命令如下:
2. 安装 Memcached
接下来,通过 yum 包管理器安装 Memcached,并使用 which 命令验证安装位置,具体操作如下:
注意:如果通过 yum 自动安装,memcached 可执行文件通常位于 `/usr/bin/memcached` 目录中。
【三】 Memcached 使用指南
以下将介绍如何使用 Memcached 数据库,包括常用的启动命令参数,以及如何启动、停止和连接到 Memcached 数据库。
1. 常用启动命令参数
启动 Memcached 数据库时,可以指定多个参数,具体参数说明如表所示。
2. Memcached 启动方式
Memcached 的启动方式分为前台运行和后台运行,下面分别介绍这两种运行方式。
①前台运行:执行如下命令启动 Memcached 前台程序:
如图所示,命令执行后,Memcached 便在前台启动,用户为 root,监听端口为 11211,最大内存使用量为 100MB。调试信息大多与存储操作相关。
②后台运行:执行如下命令启动 Memcached 后台程序:
3. Memcached 停止服务
停止 Memcached 服务有三种方法,分别使用 kill 和 killall(或 pkill)命令。具体操作如下:
(1)使用 kill 结合进程号:操作命令如下:
(2)使用 kill 结合启动时“-P”参数指定的 pid 文件。
(3)使用 killall(或 pkill)命令关闭 Memcached,操作命令如下:
4. Memcached 连接方法
下面介绍如何在 Windows 和 Linux 系统中连接到 Memcached 数据库。
①在 Windows 系统中:在 DOS 命令窗口中输入以下命令:
如图所示,表示成功连接到 Memcached。
②在 Linux 系统中:使用 telnet 进行连接测试。首先检查系统中是否已经安装了 telnet,如果没有安装,先执行如下命令进行安装: