Memcached
是一个自由开源的,高性能,分布式内存对象缓存系统。
Memcached
是以LiveJournal
旗下Danga Interactive
公司的Brad Fitzpatric
为首开发的一款软件。现在已成为mixi
、hatena
、Facebook
、Vox
、LiveJournal
等众多服务中提高Web
应用扩展性的重要因素。
Memcached
是一种基于内存的key-value
存储,用来存储小块的任意数据(字符串、对象)。这些数据可以是数据库调用、API
调用或者是页面渲染的结果。
Memcached
简洁而强大。它的简洁设计便于快速开发,减轻开发难度,解决了大数据量缓存的很多问题。它的API
兼容大部分流行的开发语言。
本质上,它是一个简洁的key-value
存储系统。
一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。
特征
memcached
作为高速运行的分布式缓存服务器,具有以下的特点。
- 协议简单
- 基于
libevent
的事件处理 - 内置内存存储方式
memcached
不互相通信的分布式
支持的语言
许多语言都实现了连接memcached
的客户端,其中以Perl
、PHP
为主。仅仅memcached
网站上列出的有:
- Perl
- PHP
- Python
- Ruby
- C#
- C/C++
- Lua
Linux Memcached 安装
Memcached
支持许多平台:Linux
、FreeBSD
、Solaris
、Mac OS
,也可以安装在Windows
上。
Linux
系统安装memcached
,首先要先安装libevent
库。
sudo apt-get install libevent ibevent-dev 自动下载安装(Ubuntu/Debian)
yum install libevent libevent-devel 自动下载安装(Redhat/Fedora/Centos)
安装 Memcached
自动安装
Ubuntu/Debian
sudo apt-get install memcached
Redhat/Fedora/Centos
yum install memcached
FreeBSD
portmaster databases/memcached
源代码安装
从其官方网站(http://memcached.org)下载memcached
最新版本。
wget http://memcached.org/latest 下载最新版本
tar -zxvf memcached-1.x.x.tar.gz 解压源码
cd memcached-1.x.x 进入目录
./configure --prefix=/usr/local/memcached 配置
make && make test 编译
sudo make install 安装
Memcached 运行
Memcached
命令的运行:
$ /usr/local/memcached/bin/memcached -h 命令帮助
注意:如果使用自动安装 memcached
命令位于/usr/local/bin/memcached
。
启动选项:
-d
是启动一个守护进程;-m
是分配给Memcache
使用的内存数量,单位是MB
;-u
是运行Memcache
的用户;-l
是监听的服务器IP
地址,可以有多个地址;-p
是设置Memcache
监听的端口,,最好是1024
以上的端口;-c
是最大运行的并发连接数,默认是1024
;-P
是设置保存Memcache
的pid
文件。
(1)作为前台程序运行:
从终端输入以下命令,启动memcached
:
/usr/local/memcached/bin/memcached -p 11211 -m 64m -vv
slab class 1: chunk size 88 perslab 11915
slab class 2: chunk size 112 perslab 9362
slab class 3: chunk size 144 perslab 7281
中间省略
slab class 38: chunk size 391224 perslab 2
slab class 39: chunk size 489032 perslab 2
<23 server listening
<24 send buffer was 110592, now 268435456
<24 server listening (udp)
<24 server listening (udp)
<24 server listening (udp)
<24 server listening (udp)
这里显示了调试信息。这样就在前台启动了memcached
,监听TCP
端口11211
,最大内存使用量为64M
。调试信息的内容大部分是关于存储的信息。
(2)作为后台服务程序运行:
# /usr/local/memcached/bin/memcached -p 11211 -m 64m -d
或者
/usr/local/memcached/bin/memcached -d -m 64M -u root -l 192.168.0.200 -p 11211 -c 256 -P /tmp/memcached.pid
Memcached 连接
我们可以通过 telnet
命令并指定主机ip
和端口来连接 Memcached
服务。
语法
telnet HOST PORT
命令中的 HOST
和 PORT
为运行 Memcached
服务的 IP
和 端口。
实例
以下实例演示了如何连接到Memcached
服务并执行简单的 set
和 get
命令。
本实例的 Memcached
服务运行的主机为 127.0.0.1(
本机) 、端口为 11211
。
telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
set foo 0 0 3 保存命令
bar 数据
STORED 结果
get foo 取得命令
VALUE foo 0 3 数据
bar 数据
END 结束行
quit 退出