Memcached 介绍与使用指南

目录

引言

Memcached 概述

什么是Memcached?

Memcached 的特点

Memcached 工作原理

Memcached 安装与配置

安装 Memcached

配置 Memcached

Memcached 使用方法

客户端工具

基本操作

设置键值对

获取键值对

删除键值对

注意事项


引言

在现代互联网应用中,随着用户量的不断增加和数据量的爆炸式增长,如何高效地存储和访问数据成为了开发者们面临的重要挑战。Memcached,作为一种高性能的分布式内存对象缓存系统,以其卓越的性能和易用性,在众多大型网站中得到了广泛应用。本文将详细介绍Memcached的基本概念、工作原理、安装配置以及基本使用方法,帮助读者快速上手Memcached。

Memcached 概述

什么是Memcached?

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

memcached是一套分布式的快取系统,与redis相似,当初是Danga Interactive为了LiveJournal所发展的,但被许多软件(如MediaWiki)所使用。这是一套开放源代码软件,以BSD license授权协议发布。 

memcached缺乏认证以及安全管制,这代表应该将memcached服务器放置在防火墙后。 

memcached的API使用32位元的循环冗余校验(CRC-32)计算键值后,将资料分散在不同的机器上。当表格满了以后,接下来新增的资料会以LRU机制替换掉。由于memcached通常只是当作快取系统使用,所以使用memcached的应用程式在写回较慢的系统时(像是后端的数据库)需要额外的程式码更新memcached内的资料 

memcached 是以LiveJournal 旗下Danga Interactive 公司的Brad Fitzpatric 为首开发的一款软件。已成为mixi、hatena、Facebook、Vox、LiveJournal等众多服务中提高Web应用扩展性的重要因素。许多Web应用都将数据保存到RDBMS中,应用服务器从中读取数据并在浏览器中显示。但随着数据量的增大、访问的集中,就会出现RDBMS的负担加重、数据库响应恶化、网站显示延迟等重大影响。

这时就该memcached大显身手了。memcached是高性能的分布式内存缓存服务器。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。

Memcached 的守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。但是它并不提供冗余(例如,复制其hashmap条目);当某个服务器S停止运行或崩溃了,所有存放在S上的键/值对都将丢失。

Memcached由Danga Interactive开发,其最新版本发布于2010年,作者为Anatoly Vorobey和Brad Fitzpatrick。用于提升LiveJournal . com访问速度的。LJ每秒动态页面访问量几千次,用户700万。Memcached将数据库负载大幅度降低,更好的分配资源,更快速访问。

Memcached 的特点

  • 高性能:Memcached基于内存存储,访问速度非常快,远远超过了磁盘存储。
  • 分布式:可以运行在多个服务器上,通过客户端实现分布式缓存。
  • 简单性:Memcached的协议简单,只支持基本的设置(set)、获取(get)和删除(delete)等操作。
  • 可扩展性:可以轻松增加或减少缓存服务器来适应访问量的变化。
  • 非持久化:Memcached默认不将数据持久化到磁盘,重启后数据会丢失,但这也保证了它的高性能。

Memcached 工作原理

        Memcached的工作原理非常直接:客户端(如Web服务器)向Memcached服务器发送请求,请求可以是设置(set)一个键值对、获取(get)一个键对应的值或删除(delete)一个键。Memcached服务器在内存中维护一个键值对存储,根据请求进行相应的操作,并将结果返回给客户端。

Memcached 安装与配置

安装 Memcached

Memcached的安装相对简单,大多数Linux发行版都提供了Memcached的包。以Ubuntu为例,可以使用以下命令安装:

sudo apt-get update  
sudo apt-get install memcached

安装完成后,Memcached服务将自动启动。

配置 Memcached

Memcached的配置文件通常位于/etc/memcached.conf。你可以编辑这个文件来修改Memcached的启动参数,如最大内存使用量、监听端口、连接数等。

例如,修改最大内存使用量为1GB:

-m 1024

修改监听端口为11211(Memcached默认端口):

-p 11211

修改后,需要重启Memcached服务使配置生效。

Memcached 使用方法

客户端工具

有多种客户端工具可以与Memcached交互,如memcached命令行工具、libmemcached库以及各种语言的客户端库(如Python的pymemcache)。

基本操作

设置键值对

使用set命令设置键值对,例如:

echo -e "set foo 0 0 3\r\nbar\r\n" | nc localhost 11211

这里,foo是键,0 0分别是过期时间和标志位(flag),3是值bar的长度。

获取键值对

使用get命令获取键对应的值,例如:

echo -e "get foo\r\n" | nc localhost 11211

如果键存在,Memcached将返回键和对应的值。

删除键值对

使用delete命令删除键值对,例如:

echo -e "delete foo\r\n" | nc localhost 11211

如果删除成功,Memcached将返回DELETED

注意事项

  • 数据一致性:由于Memcached不保证数据持久化,因此它不适用于对数据一致性要求极高的场景。
  • 内存管理:合理配置Memcached的内存使用量,避免占用过多系统资源。
  • 安全性:Memcached默认没有加密和认证机制,建议在内网中使用,并通过防火墙等安全措施保护。
  • 30
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值