下载Memcached:
http://danga.com/memcached/download.bml
安装:
下载安装libevent,已安装可跳过:
下载地址:http://www.monkey.org/~provos/libevent/
Memcached For PHP Module下载地址:
http://pecl.php.net/package/memcache
http://cn.php.net/manual/zh/ref.memcache.php
安装Memcached服务端
root@tonyvicky:# tar vxzf memcached-1.1.12.tar.gz
root@tonyvicky:# cd memcached-1.1.12
root@tonyvicky:# ./configure --prefix=/usr/local/memcached
root@tonyvicky:# make
root@tonyvicky:# make install |
安装完毕重启服务:
root@tonyvicky:# cd /usr/local/memcached/bin
root@tonyvicky:# ./memcached -d -m 50 -p 11211 -u root |
安装PHP模块
root@tonyvicky:# tar vxzf memcache-1.5.tgz
root@tonyvicky:# cd memcache-1.5
root@tonyvicky:# /usr/local/php/bin/phpize
root@tonyvicky:# ./configure --enable-memcache
--with-php-config=/usr/local/php/bin/php-config --with-zlib-dir
root@tonyvicky:# make
root@tonyvicky:# make install |
安装完后可能会有如下提示:
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20050922/ |
修改php.ini
修改为:
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20050922/" |
添加一行:
安装完毕,测试:
PHP代码
<?php
$memcache
=
new
Memcache;
//创建一个memcache对象
$memcache
->connect(
'localhost'
, 11211)
or
die
(
"Could not connect"
);
//连接Memcached服务器
$memcache
->set(
'key'
,
'test'
);
//设置一个变量到内存中,名称是key 值是test
$get_value
=
$memcache
->get(
'key'
);
//从内存中取出key的值
echo
$get_value
;
?>
Memcache的内定Function
connect(ip, port)
set(key, value) 数据压缩:set(key, value, MEMCACHE_COMPRESSED
)
get(key)
increment
, 同set(好像多了个计数功能,没试过)
getStats() 返回当前内存占用情况(return array) print_r($memcached->getStats());
flush 清空内存占用.
代码范例(来自chinaunix):
PHP代码
<?php
//访问统计
$memcache
=
new
Memcache;
$memcache
->connect(’localhost’, 11211)
or
die
(
"Could not connect"
);
if
(
$s
=
$memcache
->get(’a’)) {
$s
=
$s
+1;
$memcache
->set(’a’,
$s
);
}
else
$memcache
->set(’a’,1);
echo
’访问结果为:’.
$s
;
?>
等效PHP代码
<?php
$memcache
=
new
Memcache;
$memcache
->connect(’localhost’, 11211)
or
die
(
"Could not connect"
);
if
(
$s
=
$memcache
->increment(’a’,1)) {
echo
$s
;
}
else
$memcache
->set(’a’,1);
?>
数据压缩PHP代码
<?php
$memcache
=
new
Memcache;
$memcache
->connect(’localhost’, 11211)
or
die
(
"Could not connect"
);
$test
=(
str_repeat
(’jetwong’,100000));
$memcache
->set(’b’,(
$test
));
?>
使用压缩:
<?php
$memcache
=
new
Memcache;
$memcache
->connect(’localhost’, 11211)
or
die
(
"Could not connect"
);
$test
=(
str_repeat
(’jetwong’,100000));
$memcache
->set(’b’,(
$test
),MEMCACHE_COMPRESSED);
?>
内存的更新清理PHP代码
<?php
$memcache
=
new
Memcache;
$memcache
->connect(’localhost’, 11211)
or
die
(
"Could not connect"
);
/*设置值*/
$status
=
$memcache
->getStats();
echo
’设置前内存使用情况’.
$status
[’bytes’].’<br>’;
echo
’设置后’;
for
(
$i
=0;
$i
<9;
$i
++) {
$memcache
->set(’b’.
$i
,rand(1,99));
echo
’<br>’.
$i
.’->’.
$memcache
->get(’b’.
$i
);
}
/*查看设置的值*/
$status
=
$memcache
->getStats();
echo
’
delete
前内存使用情况’.
$status
[’bytes’].’<br>’;
echo
’<br>开始
delete
’;
for
(
$i
=0;
$i
<9;
$i
++) {
$memcache
->
delete
(’b’.
$i
);
echo
’<br>’.
$i
.’->’.
$memcache
->get(’b’.
$i
);
}
/*查看flush使用的情况*/
$status
=
$memcache
->getStats();
echo
’使用
flush
前内存使用情况’.
$status
[’bytes’].’<br>’;
echo
’使用
flush
情况:’;
for
(
$i
=0;
$i
<9;
$i
++) {
$memcache
->set(’b’.
$i
,rand(1,99));
echo
’<br>’.
$i
.’->’.
$memcache
->get(’b’.
$i
);
}
$memcache
->
flush
();
echo
’
flush
之后:’;
for
(
$i
=0;
$i
<9;
$i
++) {
echo
’<br>’.
$i
.’->’.
$memcache
->get(’b’.
$i
);
}
$status
=
$memcache
->getStats();
echo
’
flush
后内存使用情况’.
$status
[’bytes’].’<br>’;
?>
内存超量测试PHP代码
<?php
$memcache
=
new
Memcache;
$memcache
->connect(’localhost’, 11211)
or
die
(
"Could not connect"
);
//600K左右
$test1
=
str_repeat
(’jetlee’,100000);
//600K左右
$test2
=
str_repeat
(’jetlee’,100000);
//600K左右
$test3
=
str_repeat
(’李连杰’,200000);
//600K左右
$test4
=
str_repeat
(’连杰李’,100000);
//200K
$test5
=
file_get_contents
(’http:
//img.pconline.com.cn/images/photoblog/2988177/20068/4/1154688770042_mthumb.JPG’);
$test6
=
file_get_contents
(’http:
//img.pconline.com.cn/images/photoblog/1767557/20069/28/1159417108902_mthumb.jpg’);
for
(
$i
=1;
$i
<=6;
$i
++) {
$j
=’test’.
$i
;
if
(
$memcache
->set(
$j
,$
$j
))
{
echo
$j
.’->设置成功<br>’;
$status
=
$memcache
->getStats();
echo
’内存:’.
$status
[’bytes’].’<br>’;
}
else
{
echo
$j
.’->设置失败<br>’;
}
}
?>
总结
PHP代码
<?
//设置篇
if
(
$data
=
$memcache
->get(’k’,
$v
)) {
//显示我们的数据
}
else
{
$data
= get_from_database;
//得到数据源
if
(!
$memcache
->set(’k’,
$data
), MEMCACHE_COMPRESSED)
//开始设置
log(); //不成功,记录失败信息
}
?>
分享到:
相关推荐
安装php-memcached扩展 https://github.com/php-memcached-dev/php-memcached tar -zxvf php-memcached-3.1.3.tar.gz && cd /root/php-memcached-3.1.3 && /usr/local/php7/bin/phpize && ./configure --with-...
4. 启动服务:使用命令行工具启动Memcached服务,例如:`memcached.exe -d install`来安装服务,`memcached.exe -d start`来启动服务。 5. 集成测试:编写简单的客户端程序,连接到Memcached服务器,进行存取操作,...
在Linux环境下,可以使用以下步骤安装memcached 1.5.16: 1. 下载源码包:`wget http://www.memcached.org/files/memcached-1.5.16.tar.gz` 2. 解压:`tar -zxvf memcached-1.5.16.tar.gz` 3. 编译安装:`cd ...
memcached的基本设置: -p 监听的端口 -l 连接的IP地址, 默认是本机 -d start 启动memcached服务 -d restart 重起memcached服务 -d stop|shutdown 关闭正在运行的memcached服务 -d install 安装memcached服务 -d ...
**Memcached 1.2.1 for Windows:安装与使用指南** Memcached 是一款高性能、分布式内存对象缓存系统,广泛应用于减轻数据库负载,提高Web应用的响应速度。本文将详细介绍如何在Windows环境下安装和使用 Memcached ...
在实际应用中,Memcached 可以与多种编程语言结合使用,如 PHP、Python、Java、Ruby 等,通过其提供的客户端库进行数据的缓存操作。它支持简单的键值对存储,适合存储临时性的、非结构化的数据,如session数据、热门...
memcached-client.php
3. 启动服务:安装完成后,使用`memcached`命令启动服务,可以设置内存大小、端口等参数。 三、Memcached的工作机制 1. 内存管理:Memcached采用slab分配机制管理内存,将内存分为多个 slab 分区,每个分区内部又...
- 最后,使用`sudo make install`将`memcached`安装到系统路径,通常为`/usr/local/bin`。 4. **运行与配置** - 启动`memcached`服务,可以使用命令`memcached -d -p [port] -m [memory]`,参数`-d`表示以守护...
### PHP安装memcached知识点 #### 一、理解Memcached与PHP的关系 - **Memcached**:是一种高性能的分布式内存对象缓存系统,用于通过缓存数据库查询结果减少数据库负载,加速动态Web应用,提高网站访问速度。 - **...
PHP-Memcached-Demo项目,通过一个压缩包形式(php-memcached-demo.tar.gz)提供了一个实战示例,帮助开发者了解并掌握如何在PHP环境中使用Memcached作为缓存服务,以实现数据的快速访问和存储。本文将深入探讨这一...
6. **客户端连接**:安装完成后,你可以在你的应用程序中使用各种编程语言(如PHP、Python、Java等)的memcached客户端库来连接并操作这个缓存服务。 7. **监控与管理**:虽然memcached本身没有图形界面管理工具,...
在本文中,我们将围绕"memcached-1.2.6-win32-bin.zip"这个压缩包,探讨其核心功能、工作原理,以及如何在Windows环境下安装和使用。 一、Memcached的核心功能 1. 分布式缓存:Memcached基于键值对存储,可将数据...
6. 使用`make install`将编译后的扩展安装到PHP的扩展目录。 7. 更新php.ini配置文件,添加扩展并设置适当的参数。 8. 重启PHP服务器使更改生效。 在实际应用中,开发者可以根据需求选择`memcached`或`memcache`...
4. **README** - 文件包含了项目的简介、安装指南、使用方法等信息,是快速了解项目的关键。 5. **whatsnew.txt** - 可能列出了新版本的主要特性、改进和修复的bug,帮助用户了解新版本的变化。 6. **doc** - 这个...
- **缓存策略**:Memcached通常使用LRU(Least Recently Used)策略,当内存空间不足时,优先淘汰最近最少使用的数据。 - **数据过期**:可以为每个键设置过期时间,过期后自动删除数据,也可以设置永不过期。 - ...
**标题解析:** "memcached-2.1.0.tgz" 是一个压缩包文件,其中包含的是 memcached 扩展的...以上就是关于"memcached-2.1.0.tgz"的相关知识点,涵盖了memcached服务、PHP扩展、相关库的介绍以及安装和使用的基本流程。
《深入理解Memcached 2.2.0RC1版本》 Memcached,作为一个高效、...通过理解和掌握memcached的工作原理、安装部署以及客户端的使用,开发人员可以充分利用这个强大的缓存系统,为自己的项目带来更高的效率和稳定性。
描述中提到的"Linux下可用的memcached压缩包及详细的安装步骤,一次安装通过"意味着这个压缩包不仅包含了memcached的源码,还可能包括一份指导如何在Linux系统上顺利安装和使用的文档。 **memcached详解** ...
本文将围绕标题“Memcached-Java-Client-release_2.6.1.zip”展开,详细讲解如何在Java项目中整合并使用Memcached客户端库。 1. **Memcached简介** - Memcached是一种轻量级、基于内存的键值对存储系统,用于存储...