缓存永远,包括服务器重新启动和Redis的磁盘功能
问题描述:
laravel相关:缓存永远,包括服务器重新启动和Redis的磁盘功能
在laravel文档,我们这写 https://laravel.com/docs/5.4/cache,用于存放物品
永远
永远的方法可用于将项目永久存储在高速缓存 中。由于这些项目不会过期,因此必须手动将 从使用忘记方法的缓存中移除:Cache :: forever('key', 'value');如果您使用的是Memcached驱动程序,则当缓存达到其大小限制时,可能会删除永久存储为 的项目。
重新启动怎么办? memcache将被擦除,那么'永远'如何?
如此永远并不意味着永远,但最终只有在下一次重新启动/崩溃之前?
怎么样的Redis:
,我听到很多人赞“它可以存储到磁盘”
好,如果是服务器的崩溃?目前是否还存储缓存? Redis会自动处理这个问题吗?可能不会。所以我不太明白它的优点。 “redis是否可以存储到磁盘”是解决上述“永久”问题的解决方案?如果是这样,你能解释一下吗?
答
缓存::永远( '键', '值')
这意味着存储的值,没有任何TTL(时间到现场)。但是,当缓存大小达到其分配的大小时,先前存储的值将被删除。
Redis的
如果你问Redis的。它将基于配置的值存储到磁盘。如果服务器崩溃,那么如果您的磁盘文件没有损坏,您也可以通过重新启动它来查找旧数据。只有当redis空间的大小已满或您已为值设置ttl时,才会删除来自redis的旧数据。
如果您使用缓存来保存数据,那么您应该考虑更改您的应用程序设计。根据定义,缓存应该是临时的,并且不应该在应用程序失效时中断应用程序。如果你永远在缓存中存储东西,那么它不是缓存,它是一个数据存储。 – Joe