Memcached
Memcached是一个自由开源的,高性能,分布式内存对象缓存系统。
Memcached是以LiveJournal旗下Danga Interactive公司的Brad Fitzpatric为首开发的一款软件。现在已成为mixi、hatena、Facebook、Vox、LiveJournal等众多服务中提高Web应用扩展性的重要因素。
Memcached是一种基于内存的key-value存储是一个存储键值对的Hashmap,用来存储小块的任意数据(字符串、对象)。这些数据可以是数据库调用、API调用或者是页面渲染的结果。
Memcached简洁而强大。它的简洁设计便于快速开发,减轻开发难度,解决了大数据量缓存的很多问题。它的API兼容大部分流行的开发语言。本质上,它是一个简洁的key-value存储系统。
一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。
特征
memcached作为高速运行的分布式缓存服务器,具有以下的特点。
- 协议简单
- 基于libevent的事件处理
- 内置内存存储方式
- memcached不互相通信的分布式
Memcached安装
安装
yum install libevent libevent-devel -y #安装
Libevent:是一个用C语言编写的、轻量级的开源高性能事件通知库
安装Memcached
yum安装
yum install memcached libmemcached -y #yum安装Memcached
Memcached运行
memcached -h #帮助命令
常用选项:
选项 | 作用 |
---|---|
-d | 启动一个守护进程 |
-m | 分配给Memcached使用内存,单位是MB |
-u | 运行Memcached的用户 |
-l | 监听的服务器IP地址,可以有多个 |
-p | 设置服务的监听端口,最好是1024以上 |
-c | 最大并发连接数,1024 |
-P | 设置保存Memcache的pid文件 |
-v/vv/vvv | 正常/详细/更详细打印客户端命令 |
创建用户
Memcached不能用root用户使用参数运行,所以我们需要再创建一个普通用户
useradd memcache #创建用户
passwd memcache #设置密码
启动服务
memcached -p 11211 -u memcache -m 64m -vv #前台启动memcached
memcached -p 11211 -u memcache -m 64m -d #后台启动memcached
Memcached连接
我们可以通过 telnet 命令并指定主机ip和端口来连接 Memcached 服务。
yum install -y telnet #安装telnet
注意:telnet是明文传输哦!
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 #退出
PHP使用Memcached服务
在前面章节中我们已经介绍了如何安装 Memcached 服务,接下来我们为大家介绍 PHP 如何使用 Memcached 服务。
yum install php php-devel zlib-devel gcc -y #安装PHP和一些必要的库
wget http://pecl.php.net/get/memcache-2.2.7.tgz #获取最新稳定包
tar -zxf memcache-2.2.7.tgz #解压安装
cd memcache-2.2.7 #进入文件夹
phpize #安装php的扩展文件工具
./configure --with-php-config=/usr/bin/php-config && make && make install #编译安装
#Installing shared extensions: /usr/lib64/php/modules/
#安装完成的扩展路径
phpize
最后编译完成界面
扩展路径
修改配置文件,添加扩展
vim /etc/php.ini #进入php.ini配置文件
检查扩展是否添加成功:
php -m|grep memcache
vim 1.php #创建php文件 随意添加内容
php 1.php