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安装

以centos7为例进行安装

  1. yum install libevent libevent-devel -y #安装

Libevent:是一个用C语言编写的、轻量级的开源高性能事件通知库

安装Memcached

yum安装

  1. yum install memcached libmemcached -y #yum安装Memcached

Memcached运行

  1. memcached -h #帮助命令

常用选项:

选项 作用
-d 启动一个守护进程
-m 分配给Memcached使用内存,单位是MB
-u 运行Memcached的用户
-l 监听的服务器IP地址,可以有多个
-p 设置服务的监听端口,最好是1024以上
-c 最大并发连接数,1024
-P 设置保存Memcache的pid文件
-v/vv/vvv 正常/详细/更详细打印客户端命令

创建用户

Memcached不能用root用户使用参数运行,所以我们需要再创建一个普通用户

  1. useradd memcache #创建用户
  2. passwd memcache #设置密码

启动服务

  1. memcached -p 11211 -u memcache -m 64m -vv #前台启动memcached
  2. memcached -p 11211 -u memcache -m 64m -d #后台启动memcached

Mencached入门 - 图1

Memcached连接

我们可以通过 telnet 命令并指定主机ip和端口来连接 Memcached 服务。

  1. yum install -y telnet #安装telnet

注意:telnet是明文传输哦!

  1. telnet 127.0.0.1 11211
  2. Trying 127.0.0.1...
  3. Connected to 127.0.0.1.
  4. Escape character is '^]'.
  5. set foo 0 0 3 #保存命令
  6. bar #数据
  7. STORED #结果
  8. get foo #取得命令
  9. VALUE foo 0 3 #数据
  10. bar #数据
  11. END #结束行
  12. quit #退出

Ctrl+C和Ctrl+D都无法退出哦!

PHP使用Memcached服务

在前面章节中我们已经介绍了如何安装 Memcached 服务,接下来我们为大家介绍 PHP 如何使用 Memcached 服务。

  1. yum install php php-devel zlib-devel gcc -y #安装PHP和一些必要的库
  2. wget http://pecl.php.net/get/memcache-2.2.7.tgz #获取最新稳定包
  3. tar -zxf memcache-2.2.7.tgz #解压安装
  4. cd memcache-2.2.7 #进入文件夹
  5. phpize #安装php的扩展文件工具
  6. ./configure --with-php-config=/usr/bin/php-config && make && make install #编译安装
  7. #Installing shared extensions: /usr/lib64/php/modules/
  8. #安装完成的扩展路径

phpize

Mencached入门 - 图2

最后编译完成界面

Mencached入门 - 图3

扩展路径

Mencached入门 - 图4

修改配置文件,添加扩展

  1. vim /etc/php.ini #进入php.ini配置文件

Mencached入门 - 图5

检查扩展是否添加成功:

  1. php -m|grep memcache
  2. vim 1.php #创建php文件 随意添加内容
  3. php 1.php

Mencached入门 - 图6

Mencached入门 - 图7

Memcached中存储session

  1. systemctl start httpd #启动apache
  2. vim /etc/php.ini #在lamp/lnmp下进行,至少有个apache或者nginx
  3. #编辑php.ini添加两行
  4. session.save_handler = memcache
  5. session.save_path = "tcp://192.168.218.150"

Mencached入门 - 图8

或者httpd.conf中对应的虚拟主机中添加

  1. php_value session.save_handler "memcache"
  2. php_value session.save_path "tcp://192.168.218.150"

或者php-fpm.conf对应的pool中添加

  1. php_value[session.save_handler] = memcache
  2. php_value[session.save_path] = "tcp://192.168.218.150"

配置session.php

  1. cd /var/www/html #进入文件夹
  2. vim session.php #创建文件
  3. <?php
  4. session_start();
  5. $_SESSION['name']='test';
  6. echo session_id()."<br/>";
  7. echo $_SESSION['name'];
  8. ?>
  9. php session.php start #启动php文件

Mencached入门 - 图9

或者从浏览器打开

Mencached入门 - 图10