PHP 是否支持会话外部可用的持久键值存储


Does PHP support persistent key-value stores available outside of the session?

简短的问题:我需要一个用于PHP的K/V存储,其范围不限于特定的HTTP会话。RDBMS是矫枉过正的,所以我已经排除了。它还需要可供共享资源托管服务器的用户使用。存在吗?

长问题:我正在开发一个远程访问 REST API 的 PHP 客户端库。我宁愿将数据请求保留在 K/V 存储中,以便在预定时间过去时,基础数据将被视为"过时"并调用 API(透明)。

我的问题是,我假设最终用户将无法访问正常共享资源托管解决方案之外的任何内容。

我来自Java世界,顺便说一句。

你的

一个选项是Memcache:http://php.net/manual/en/class.memcache.php

其他选项可能是:Redis,MongoDb或数据库中的K/V表(MySQL)。

如果Memcache不可用(应该是),并且您唯一的选择是MySQL或磁盘上的文件,我会选择MySQL。

一个表:key_values字段键(主键)、值和到期日期。

您可以使用以下方法创建一个简单的 PHP 类(例如):add、get、update、delete、deleteExpire。

用法是不言自明的,有一点需要提到:您必须创建一个调用 deleteExpire() 的脚本,理想情况下在 SQL 查询"优化表key_values"之后运行。

此脚本必须设置为cron作业(设置为每N分钟自动运行一次) - 这在共享主机系统上是相当标准的。

你可以看看下面的项目: https://github.com/doctrine/cache它提供文件存储实现。