我需要将不同用户之间的数据(因此不同的会话)存储到RAM中,以加快用PHP编写的Web应用程序(数据库和文件系统不是一种选择)。
我一直在谷歌上搜索几天,没有任何运气。我听说过 memcached 和 apc ,但我真的不知道它们是否适合我或者如何使用它。
我还需要这个数据结构是线程安全的(没有竞争条件和数据不一致)。
用例:
我有一个静态工厂函数getById($id)
,它返回一个类的实例。我需要这个函数来检查实例是否存在,如果存在,则返回它,或者创建一个用数据库填充数据的新实例。
答案 0 :(得分:1)
Memcached是和分发缓存,memcached缓存的数据在远程服务器上,而Memcached提供CAS锁(乐观锁),你可以使用它来制作你的线程安全应用程序:
答案 1 :(得分:0)
memcached或memcache的问题是它只是php上的客户端模块。您还需要安装服务器应用程序并在那里连接。所以你可以使用任何其他数据库或文件。最快的解决方案是共享内存http://php.net/manual/en/book.shmop.php 但再一次启用它“在配置行中使用--enable-shmop参数编译PHP” 所以没有数据库和访问php检查 fopen 和 flock 函数