Memcached介绍
Memcached 是一个高性能的开源分布式内存对象缓存系统。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高数据访问速度,同时能实现多台服务器数据共享。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。
Memcached基于一个存储键/值对的hashmap, 它是一个简洁的key-value存储系统。
一般使场景有:
- 存储数据库查询结果,减少数据库访问次数。(一般用于储存那些修改频率低而访问频率高的数据。)
- 服务器间数据共享。例如:软件的登录系统和其他系统拆分为不同工程放在不同的服务器上,做了集群化处理,用户登录后,使用其他系统功能时不同服务器间需要获取用户登录信息,这时我们可以将用户的登录信息缓存到Memcached,这样不同服务器间便可以实时的获取用户的登录信息。
- 作为高速数据库使用。可使用一台或多台服务器构成一个内存池,用于存储数据库的大并发量访问的数据,以降低数据库压力,提高系统反应熟读。
许多语言都实现了链接Memcached的客户端,其中有:Perl、PHP、Python、Ruby、C#、C/C++、Lua等。
Memcached安装
Linux Memcached 安装
Memcached 支持许多平台:Linux、FreeBSD、Solaris、Mac OS,也可以安装在Windows上。
Linux系统安装memcached,首先要先安装libevent库。
libevent安装
下载libevent2 :http://libevent.org
进入目录
tar -zxvf libevent-2-stable.tar.gz 解压
./configure -pref=/usr 配置路径
make 编译
sudo mark make install 安装
Memcached自动安装
sudo apt-get install memcached
默认安装路径为:/usr/share/memcached
Memcached手动安装
官网下载:http://memcached.org
或者用命令下载最新版
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启动项设置说明:
选项 | 含义说明 |
---|---|
-d | 指定memcached进程作为一个守护进程启动 |
-m | 指定分配给memcached使用的内存,单位是MB |
-u | 运行memcached的用户 |
-l | 监听的服务器IP地址,如果有多个地址的话,使用逗号分隔,格式可以为“IP地址:端口号”,例如:-l 指定 192.168.0.184:19830,192.168.0.195:13542;端口号也可以通过-p选项指定 |
-p | Memcached监听的端口,要保证该端口号未被占用 |
-c | 设置最大运行的并发连接数,默认是1024 |
-R | 为避免客户端饿死(starvation),对连续达到的客户端请求数设置一个限额,如果超过该设置,会选择另一个连 接来处理请求,默认为20 |
-k | 设置锁定所有分页的内存,对于大缓存应用场景,谨慎使用该选项 |
-P | 保存memcached进程的pid文件 |
-s | 指定Memcached用于监听的UNIX socket文件 |
-a | 设置-s选项指定的UNIX socket文件的权限 |
-U | 指定监听UDP的端口,默认11211,0表示关闭 |
-M | 当内存使用超出配置值时,禁止自动清除缓存中的数据项,此时Memcached不可以,直到内存被释放 |
-r | 设置产生core文件大小 |
-f | 用于计算缓存数据项的内存块大小的乘数因子,默认是1.25 |
-n | 为缓存数据项的key、value、flag设置最小分配字节数,默认是48 |
-C | 禁用CAS |
-h | 显示Memcached版本和摘要信息 |
-v | 输出警告和错误信息 |
-vv | 打印信息比-v更详细:不仅输出警告和错误信息,也输出客户端请求和响应信息 |
-i | 打印libevent和Memcached的licenses信息 |
-t | 指定用来处理请求的线程数,默认为4 |
-D | 用于统计报告中Key前缀和ID之间的分隔符,默认是冒号“:” |
-L | 尝试使用大内存分页(pages) |
-B | 指定使用的协议,默认行为是自动协商(autonegotiate),可能使用的选项有auto、ascii、binary。 |
-I | 覆盖默认的STAB页大小,默认是1M |
-F | 禁用flush_all命令 |
-o | 指定逗号分隔的选项,一般用于用于扩展或实验性质的选项 |
Memcached启动命令
memcached -d -m 10 -u root -p 11222 -c 256 -P /tmp/memcached.pid
链接测试
telnet 127.0.0.1 11222
输出
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
退出telnet命令方法
按下 ctrl + ]
telnet>close
Window Memcached 安装
官网上并未提供 Memcached 的Window平台安装包,你可以使用以下链接来下载:
- 32位系统 1.4.5版本:http://static.runoob.com/download/memcached-1.4.5-x86.zip
64位系统 1.4.5版本:http://static.runoob.com/download/memcached-1.4.5-amd64.zip
- 下载完后解压下载的安装包到指定目录。
- 在 memcached1.4.5 版本之后,memcached 不能作为服务来运行,需要使用任务计划中来开启一个普通的进程,在 window 启动时设置 memcached自动执行。
我们使用管理员身份执行以下命令将 memcached 添加来任务计划表中:
schtasks /create /sc onstart /tn memcached /tr "'d:\memcached\memcached.exe' -m 512"
我们可以通过使用下面命令查看更多的参数配置:
d:\memcached\memcached.exe -h
如果需要删除 memcached 的任务计划可以执行以下命令:
schtasks /delete /tn memcached
注意:你需要使用真实的路径替代 d:\memcached\memcached.exe。