PHP在mySQL中存储一些数据x小时(限时)

时间:2017-09-11 22:07:20

标签: php mysql laravel

如何在数据库中存储数据的时间有限(例如1小时)?

用户搜索某个东西,逻辑在服务器端执行并且加载搜索结果。结果加载后,我想将它存储在MySQL中并保持x小时。 x小时后,应从数据库中删除此数据。

如何在Laravel或PHP中执行此操作(对我来说无关紧要。我刚才提到了Laravel,因为它可能有一些库)?它是关于在SQL中编写逻辑还是PHP任务?

怎么做?任何建议/链接/解决方案?

非常感谢!

3 个答案:

答案 0 :(得分:1)

  

是在SQL中编写逻辑还是PHP任务?

使用php执行此操作会很麻烦,因为您始终需要发送请求以检查记录是否已过期,然后发送另一个记录以进行删除。这可以使用events中的mysql来实现。 I came across this blog post which might be helpful

另外,别忘了查看mysql documentation page

答案 1 :(得分:1)

标记具有到期时间戳的记录,并且每分钟(或您喜欢的任何频率)运行cron作业以删除过期记录。

答案 2 :(得分:0)

此任务的最佳解决方案是使用Redis数据库。 PHP有2个驱动程序: pRedis phpRedis

pRedis 是一个用PHP编写的实现,对于大量用户来说,它的工作速度相对较慢。

phpRedis 驱动程序是用C语言编写的,它运行得更快。

使用 $ redis-> psetex($ key,$ destroy_time,$ value)功能创建自毁记录。希望它能帮助将来的任何人