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

时间:2015-03-07 21:07:53

标签: php key-value

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

长问题:我正在开发远程访问REST API的PHP客户端库。我宁愿将数据请求保存在K / V存储中,这样当预定时间过去时,底层数据将被视为“陈旧”并调用API(透明地)。

我的问题是我认为最终用户无法访问普通共享资源托管解决方案之外的任何内容。

我来自Java世界,BTW。

2 个答案:

答案 0 :(得分:0)

你的选择是Memcache: http://php.net/manual/en/class.memcache.php

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

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

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

您可以使用方法创建一个简单的PHP类(示例):add,get,update,delete,deleteExpired。

用法是自解释的,只需要提一下:你必须创建一个调用deleteExpired()的脚本,然后理想地运行SQL查询" OPTIMIZE TABLE key_values"。

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

答案 1 :(得分:0)

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

相关问题