octane cache中的interval如何使用呢

1. 运行环境

1). 当前使用的 Laravel 版本?

9

2). 当前使用的 php/php-fpm 版本?

PHP 版本:8.1

2. 问题描述?

Cache::store('octane')->interval('random', function () {
    return Str::random(10);
}, seconds: 5);
echo(Cache::store('octane')->get('random'));

//在间隔期内每次获取到的结果都是重新生成的随机字符串 

//查看源码

public function get($key)
{
$record = $this->table->get($key);
    if (! $this->recordIsFalseOrExpired($record)) {
        return unserialize($record['value']);
    }
    if (in_array($key, $this->intervals) &&
        ! is_null($interval = $this->getInterval($key))) {
        return $interval['resolver']();
    }
}
    似乎每次返回的都是function(){}()本身

3. 您期望得到的结果?

间隔期内返回相同数据

4. 您实际得到的结果?

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
梦想星辰大海
最佳答案

octane的驱动引擎必须是swoole

Cache::store(‘octane’)->interval(),放在Provider的boot方法中

3天前 评论
梦想星辰大海 (作者) 3天前
qq380998880 (楼主) 3天前
讨论数量: 5
Cache::store('octane')->interval('random', function () {
    return Str::random(10);
}, seconds: 5)

random 是缓存keyseconds:5是每5秒刷新一次。

使用: echo Cache::store('octane')->get('random');

3天前 评论
qq380998880 (楼主) 3天前
梦想星辰大海

octane的驱动引擎必须是swoole

Cache::store(‘octane’)->interval(),放在Provider的boot方法中

3天前 评论
梦想星辰大海 (作者) 3天前
qq380998880 (楼主) 3天前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!