首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel将文件缓存迁移到redis

Laravel将文件缓存迁移到redis
EN

Stack Overflow用户
提问于 2020-11-13 10:49:19
回答 1查看 301关注 0票数 0

我有一个现有的应用程序,其中包含大量使用Laravel文件驱动程序编写的缓存文件。它们遵循特定的目录和命名结构(例如):

代码语言:javascript
复制
cache/data/
    2d/
        6e/
            2d6eece558d9143286c4a08bb5757bb2cb6e9h9kf

如果有过期,文件的前10个字符就是unix时间中的过期时间戳。

1605235030a:3:{s:3:"price";s:6:"342.99"......

我想将我的整个缓存目录迁移到redis。如果做不到,我可以处理掉即将到期的那些,但我有一堆Cache::forever,理想情况下我们应该保留它们(以避免一些恼人的遗留问题)。Redis将密钥存储为纯文本,而不是哈希。如何迁移这些数据?加分,如果你可以这样做,为到期的缓存文件也。

显然,如果我们依赖于Cache::forever中的缓存项,那么我们需要改变工作方式(如果它是函数式数据,那么很可能将信息存储在DB中而不是缓存中),但是为了不丢失大量数据,这可能吗?

会话很好,它们在redis和文件缓存中的散列是一样的。

EN

回答 1

Stack Overflow用户

发布于 2021-01-27 00:21:42

我猜你现在解决了?

我正在考虑同样的挑战,因为我还没有找到解决方案,很快就会构建一些东西。对我来说,解决方案的方向是将两个缓存并行一段时间。即:

代码语言:javascript
复制
$value = Cache::store('redis')->remember('users', $seconds, function () {
    return Cache::store('file')->pull('users', function () {
        return DB::table('users')->get();
    });
});

通过在文件缓存上使用'pull‘,你可以看到当你的用户帮助填充redis时,它的大小会减小。

(ps - Tirta;确定缓存应该是完全一次性的,但这并不意味着它们是免费的。迁移可能比替换成本更低)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64814779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档