永久存储PHP变量?

时间:2012-12-25 21:00:56

标签: php variables storage

是否可以在PHP中存储永久变量,即最终的不可修改的变量,但是所有请求页面的用户都可以读取这些变量?

E.g。我需要在页面上使用字典,从一个大的(不变的)单词列表开始。这样做的最佳方式是什么?

  • 在每次加载页面时动态地将单词列表转换为树,这是对计算资源的完全浪费,每页加载需要几秒钟。
  • 将树作为子文件夹放在文件系统中并使用file_exists()足够快,但每个单词使用4KB,这完全浪费了磁盘空间。
  • 将单词放在数据库中是行不通的,因为每页加载需要数千次查找。

存储此词典的正确方法是什么?

4 个答案:

答案 0 :(得分:5)

memcached在php中非常流行,可以将内容保存在内存中,可以被许多进程访问 http://php.net/manual/en/book.memcached.php

类似的解决方案可能是使用sqlite共享内存数据库 http://www.sqlite.org/inmemorydb.html

答案 1 :(得分:2)

我的理解是你的页面应该包含一个不变的单词列表的字典。如果单词列表是不变的,如果结果字典也是不变的,那么为什么不缓存页面的整个内容?这将允许所有用户的持续访问时间。

此用例的一个常见模式是将单词列表计算为一个键,适合在数据存储区(例如memcached)中查找。性能似乎对您很重要,在这种情况下,只需对数据存储区进行一次单向读取,并且几乎不需要任何处理来显示页面。

如果用户可以与单词列表进行交互,则可以使缓存页面无效。同样,需要对数据存储区进行一次写入往返。

答案 2 :(得分:1)

我认为像MongoDB这样的NoSQL数据库非常适合您的需求。更多信息:

答案 3 :(得分:0)

数据库处理“每次加载数千次查找”有什么问题?你知道,这就是它的目的。

使用适当的索引实现数据库解决方案,你会没事的。