是否可以在PHP中存储永久变量,即最终的不可修改的变量,但是所有请求页面的用户都可以读取这些变量?
E.g。我需要在页面上使用字典,从一个大的(不变的)单词列表开始。这样做的最佳方式是什么?
file_exists()
足够快,但每个单词使用4KB,这完全浪费了磁盘空间。存储此词典的正确方法是什么?
答案 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)
数据库处理“每次加载数千次查找”有什么问题?你知道,这就是它的目的。
使用适当的索引实现数据库解决方案,你会没事的。