会员登录 | 会员注册 | 意见建议 | 网站地图

站长资源综合门户

当前位置:首页 > 站长学院 > 编程程序 > PHP 直接在共享内存中存储数据集

PHP 直接在共享内存中存储数据集

时间:2012-04-01 18:49:19   作者:   来源:   点击:

清单 9. 打开一个特定的内存段

<?php

$new = new SimpleSHM(897);

$new->write('Sample');

echo $new->read();

?>

神奇的方法 __destructor 负责在该内存段上调用 shmop_close 来取消设置对象,以与该内存段分离。我们将这称为 “SimpleSHM 101”。现在让我们将此方法用于更高级的用途:使用共享内存作为存储。存储数据集需要序列化,因为数组或对象无法存储在内存中。尽管这里使用了 JSON 来序列化,但任何其他方法(比如 XML 或内置的 PHP 序列化功能)也已足够。清单 10 给出了一个示例。

清单 10. 使用共享内存作为存储

<?php

require('SimpleSHM.class.php');

$results = array(

'user' => 'John',

'password' => '123456',

'posts' => array('My name is John', 'My name is not John')

);

$data = json_encode($results);

$memory = new SimpleSHM;

$memory->write($data);

$storedarray = json_decode($memory->read());

print_r($storedarray);

?>

我们成功地将一个数组序列化为一个 JSON 字符串,将它存储在共享内存块中,从中读取数据,去序列化 JSON 字符串,并显示存储的数组。这看起来很简单,但请想象一下这个代码片段带来的可能性。您可以使用它存储 Web 服务请求、数据库查询或者甚至模板引擎缓存的结果。在内存中读取和写入将带来比在磁盘中读取和写入更高的性能。

使用此存储技术不仅对缓存有用,也对应用程序之间的数据交换也有用,只要数据以两端都可读的格式存储。不要低估共享内存在 Web 应用程序中的力量。可采用许多不同的方式来巧妙地实现这种存储,惟一的限制是开发人员的创造力和技能。

分享到:

阅读此篇文章的网友还阅读了:

  • 2012-03-12网站题目优化直接取得排名的秘密武器
  • 网友评论

    热门编程程序