如何在数据库中存储数据的时间有限(例如1小时)?
用户搜索某个东西,逻辑在服务器端执行并且加载搜索结果。结果加载后,我想将它存储在MySQL中并保持x小时。 x小时后,应从数据库中删除此数据。
如何在Laravel或PHP中执行此操作(对我来说无关紧要。我刚才提到了Laravel,因为它可能有一些库)?它是关于在SQL中编写逻辑还是PHP任务?
怎么做?任何建议/链接/解决方案?
非常感谢!
答案 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)功能创建自毁记录。希望它能帮助将来的任何人