gpt4 book ai didi

laravel - 从缓存laravel中的数组获取对象值

转载 作者:行者123 更新时间:2023-12-03 06:44:59 26 4
gpt4 key购买 nike

我在Redis缓存中有这样的数组

127.0.0.1:6379> MGET laravel:campaign1107
1) "a:1:{s:21:\"unsubscriberCount1107\";i:2;}"
127.0.0.1:6379>

现在,我需要获取 unsubscriber1107值。我尝试过这种方式
 dd(cache()->get($arrayCacheKey[$cacheKey]));

但是,这是行不通的。如何访问该对象?

我的设置缓存代码
public function updateUnsubscriberCountCache($campaign_id, $type) 
{
$assoc = [];
$arrayCacheKey = 'campaign'.$campaign_id.'';
$cacheKey = 'unsubscriberCount'.$campaign_id.'';
if($type == 'unsubscriberLogCount') {
$cacheKey = 'unsubscriberCount'.$campaign_id.'';
if( cache()->get($cacheKey) > 0) {
cache()->increment($cacheKey);
//cache()->forget($cacheKey);
} else {
$total = UnsubscribeLog::select('unsubscribe_logs.*')->leftJoin('tracking_logs', 'tracking_logs.message_id', '=', 'unsubscribe_logs.message_id')->where('tracking_logs.campaign_id', '=', $campaign_id)->distinct('subscriber_id')->count('subscriber_id');
//cache()->forever($cacheKey, $total);
$assoc[$cacheKey] = $total;
cache()->forever($arrayCacheKey, $assoc);
}
}
}

最佳答案

您使用$arrayCacheKey将值存储为数组,但是在代码的前面,您尝试使用具有不同值的$cacheKey访问它。

如果要获取unsubscriber1107的值,则需要使用两个键的组合:

$campaignData = cache()->get($arrayCacheKey); //To get the array value from the cache
$count = $campaignData ? $campaignData[$cacheKey] : null; //get the count

以上假设

关于laravel - 从缓存laravel中的数组获取对象值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60666113/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com