Laravel Octane 缓存不持久

问题描述 投票:0回答:2
  • 辛烷版本:1.0.8
  • Laravel 版本:8.50.0
  • PHP版本:8.0
  • 服务器及版本:Swoole 4.6.7
  • 数据库驱动及版本:MySQL 8.0.25

例如,使用 Redis 时,一切都按预期工作。

cache()->store('redis')->remember("test_key", now()->addMinutes(), fn() => 'test_value');

使用

Laravel Octane Cache 时,Cache::remember() 方法不会存储值。 (返回空)

cache()->store('octane')->remember("test_key", now()->addMinutes(), fn() => 'test_value');

我做了另一个测试,似乎 Octane store 并不持久。如果我使用 put 那么 get 将立即收到该值,如果我使用 put 然后刷新页面,该值将为空。这仅适用于Octane 驱动程序Redis 存储 工作正常。

cache()->store('octane')->put("test_key", 'test_value', now()->addMinutes());

cache()->store('octane')->get("test_key"); => returns null

Redis 按预期工作。

cache()->store('redis')->put("test_key", 'test_value', now()->addMinutes());

cache()->store('redis')->get("test_key"); => returns test_value

php mysql laravel caching redis
2个回答
0
投票

我刚刚遇到了同样的问题。如果您尝试通过控制台使用“辛烷”缓存,它似乎不起作用。当我在控制器内(或从任何 Web 请求开始进程的任何地方)使用它时,它工作得很好。

我认为,如果您运行应用程序的任何命令,操作系统都会单独运行它。在这种情况下,你看不到 soole 缓存(因为它在不同的进程下),也无法使用 SwooleTable(例外:只有在使用 Swoole 服务器时才能访问表。)


0
投票

Octane缓存使用swoole表。 Octane服务器重启后,所有swoole表缓存都会被删除。

有关 swoole 表的更多信息:https://wiki.swoole.com/en/#/memory/table

© www.soinside.com 2019 - 2024. All rights reserved.