Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。
memcached是一种无阻塞的socket通信方式服务,基于libevent库,由于无阻塞通信,对内存读写速度非常之快。
一、linux下
安装libevent时
./configure -with-libevent=/nsr
Make&& make install
安装memcached
./configure -with-libevent=nsr
Make&& make install
启动:Memcached -d -m 128 -1 192.168.1.111 -p 11211 -u root
停止:kill cat/tmp/memcached pid;
Kill all memcached
二、windows 使用编译完的软件
下载地址 : http://files.cnblogs.com/files/sai564/memcached.zip
memcached.exe -d install(unstall)
memcached.exe -d start
或memcached.exe -d -m 50 -1 127.0.0.1 -p 11211 start
-p <num> 设置TCP端口号(默认不设置为: 11211)
-U <num> UDP监听端口(默认: 11211, 0 时关闭)
-l <ip_addr> 绑定地址(默认:所有都允许,无论内外网或者本机更换IP,有安全隐患,若设置为127.0.0.1就只能本机访问)
-d 以daemon方式运行
-u <username> 绑定使用指定用于运行进程<username>
-m <num> 允许最大内存用量,单位M (默认: 64 MB)
-P <file> 将PID写入文件<file>,这样可以使得后边进行快速进程终止, 需要与-d 一起使用
命令例子:
telnet localhost 11211
stats
1、添加例子:
add myvar1 1 3600 10
helloworld
2、获取:get myvar1
3、设置例子:
set myvar1 1 3600 10
aaaaaaaaaa
4、stats items
5、stats cachedump 1 0
三、在PHP中使用memcached
下载地址
:
http://files.cnblogs.com/files/sai564/memcache_dll.rar
1、增加php_memcache.dll到ext和php.ini(前提也要装memcached.exe)
使用地方:
a、数据库读出来的数据(select)使用memcache处理
b、会话(session)控制中使用
注意:
1、同意项目安装两次:加不同前缀,可以sql语句
四、安全性
1、内网访问,指定IP
memcache -d -u root -1 192.168.1.111 -p 11211
2、外网:设置防火墙
Iptables -A INPUT -p tcp -s 192.168.1.111 --dport 11211 --j ACCEPT
Iptables -A INPUT -p udp -s 192.168.1.111 --dport 11211 --j ACCEPT
五、thinkphp使用
在Conf/config.php 中添加:
'DATA_CACHE_TYPE' => 'Memcache',
'MEMCACHE_HOST' => 'tcp://127.0.0.1:11211',
'DATA_CACHE_TIME' => '3600',
根据调试信息修改下面:
return $this->handler->set($name, $value, 0, $expire);
另外,需要在某个action里清除所有缓存的时候可以这样实现:
$cache = Cache::getInstance();
$cache ->clear();