分布式缓存系统之Memcached

简单介绍:

Memcache缓存数据库:减少数据库压力。高性能的分布式内存缓存服务器,用于动态Web应用,减少I/O,提高web访问速度以减轻数据库负载,以提高动态Web应用的速度、提高可扩展性。利用 Memcached 处理实时数据读写;MySQL是影响性能的最大瓶颈,可以用一台MySQL主库(只写)+多台MySQL辅库(只读)的主辅库集群来解决。另外,访问计数等实时性很强的东西用Memcache做缓存。基于c#语言写的调用libevent库事件来实现。

1. hash表结构:key、value存取方式

2. 工作方式:memcached是以守护程序方式运行一个或多个服务器中,随时会接受客户端(如:PHP)连接或操作。

Linux安装配置

一、Memcached安装

 

 

1
2
3
4
5
6
wget http://memcached.googlecode.com/files/memcached-1.4.10.tar.gz
yum install libevent libevent-devel #安装Memcached组件
tar zxvf memcached-1.4.10.tar.gz
cd memcached-1.4.10
./configure
make && make install

查看是否成功安装memcached

1
2
3
ls -al /usr/local/bin/mem*
-rwxr-xr-x 1 root root 137986 11?? 12 17:39 /usr/local/bin/memcached
-rwxr-xr-x 1 root root 140179 11?? 12 17:39 /usr/local/bin/memcached-debug

二、安装Memcache的PHP扩展

1
2
3
4
5
6
wget http://pecl.php.net/get/memcache-3.0.6.tgz
tar zvxf memcache-3.0.6.tgz
cd memcache-3.0.6
/usr/local/php/bin/phpize
./configure –with-php-config=/usr/local/php/bin/php-config
make && make installmemcache模块

使php加载memcache模块

1
2
vi /etc/php.ini
extension=memcache.so

三、启动Memcache的服务器端:

 

1
/usr/local/bin/memcached -d -m 128 -l 192.168.0.10 -p 11211

-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB
-u是运行Memcache的用户
-l是监听的服务器IP地址
-p是设置Memcache监听的端口,最好是1024以上的端口
-c选项是最大运行的并发连接数,默认是1024,根据你服务器的负载量来设定
-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid,

结束Memcache进程,执行:killall memcached

 

 

 

Windows安装配置:

下载Memcached:http://ishare.iask.sina.com.cn/f/36094281.html

下载5.3php_memcache.dll:http://code.google.com/p/sirius/downloads/detail?name=php_memcache.dll&can=2&q=

一、Memcached和Memcache安装:
1、 下载memcache的windows稳定版,解压放某个盘下面,比如在c:\memcached
2、 CMD页面下输入 ‘c:\memcached\memcached.exe -d install’ #安装memcached到系统服务
3、安装php_memcache.dll,下载对应的php版本
4、加载memcache客户端,在C:\winnt\php.ini 加入一行 ‘extension=php_memcache.dll’

5、启动memcached:

c:\memcached\memcached.exe -d –m 128 –l 127.0.0.1 –p 11211 start #默认端口:11211

二、Memcache环境测试:

1.重新启动Apache,然后查看一下phpinfo,如果有memcache,那么就说明安装成功!
2.也可以运行下面的php文件,如果有输出This is a test!,就表示环境搭建成功。

1
2
3
4
5
6
7
< ?php
$mem = new Memcache;
$mem->connect(“127.0.0.1″, 11211);
$mem->set(‘key’, ‘This is a test!’, 0, 60);
$val = $mem->get(‘key’);
echo $val;
?>

其他测试:telnet 192.168.0.202 11211或phpinfo()

常用命令:status、version、flush_all、quit、get、add、set

发表评论

电子邮件地址不会被公开。 必填项已用*标注