【问题标题】:caching forever, including server reboot and redis to disk feature永久缓存,包括服务器重启和 redis 到磁盘功能
【发布时间】:2017-10-31 18:13:04
【问题描述】:

laravel 相关:

在 laravel 文档中,我们写了 https://laravel.com/docs/5.4/cache

永久保存物品

forever 方法可用于在缓存中存储项目 永久性。由于这些项目不会过期,因此必须手动 使用忘记方法从缓存中删除: Cache::forever('key', '价值');如果您使用的是 Memcached 驱动程序,则存储的项目 当缓存达到其大小限制时,“永远”可能会被删除。

重启呢? memcache 会被清除,那么“forever”呢?

所以永远并不意味着永远,但最终只是直到下一次重启/崩溃?

redis 呢:

我听到很多人称赞“IT CAN STORE TO DISK”

如果服务器崩溃了怎么办?缓存当前也存储在那里吗? redis会自动处理吗?可能不是。所以我真的不明白它有什么好处。 “redis 可以存储到磁盘”是上述“永远”问题的解决方案吗?如果是,你能解释一下怎么做吗?

【问题讨论】:

  • 如果您使用缓存来持久化数据,那么您应该考虑更改您的应用程序设计。根据定义,缓存应该是临时的,并且如果它无效也不应该破坏应用程序。如果您将某些内容永久存储在缓存中,那么它就不是缓存,而是数据存储。

标签: laravel caching redis


【解决方案1】:

缓存::forever('key', 'value')
它意味着存储价值,没有任何 ttl(生存时间)。但是当缓存大小达到其分配的大小时,之前存储的值将被删除。

Redis
如果你问redis。它将基于配置的值存储到磁盘。如果服务器崩溃了,那么如果您的磁盘文件没有损坏,您也可以通过重新启动它来找到旧数据。仅当 redis 空间大小已满或您为值设置了 ttl 时,才会从 redis 中删除旧数据。

【讨论】:

    猜你喜欢
    • 2019-01-26
    • 2019-02-08
    • 2014-12-15
    • 1970-01-01
    • 2018-07-26
    • 2016-02-26
    • 1970-01-01
    • 2019-05-24
    • 2013-01-30
    相关资源
    最近更新 更多