Dynamic cache是什么?

2026-04-03 04:441阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计256个文字,预计阅读时间需要2分钟。

Dynamic cache是什么?

phpDynamic cache get($cacheKey);// 是否需要更新缓存 $update=true;$nowTime=time();if (!empty($result)) { $result=@unserialize($result); $update=$result['expires'] + $nowTime;}if ($update) { $lockKey='lock_' . $cacheKey; // 锁定,防止雪崩}

Dynamic cache是什么?

Dynamic cache

get($cacheKey); // 是否需要更新缓存 $update = true; $nowTime = time(); if( !empty($result) ) { $result = @ unserialize($result); $update = $result['_expires'] < $nowTime; } if($update) { $lockKey = 'lock_'.$cacheKey; // 锁,防雪崩 if( $redis->setnx($lockKey, 1) ) { // 获取需要缓存的数据 $result = SomeClass::getData(); // 数据过期时间, 需要根据这个时间, 判断是否更新缓存 $result['_expires'] = $nowTime + max(1, (int)$expires); // 长时间缓存数据, 在这个期间遇到争锁的情况, 也能正常返回数据 $redis->setex($cacheKey, 12*3600, serialize($result)); // 释放锁 $redis->del($lockKey); } else { // 防止死锁, -1 表示永不过期 if($redis->ttl($lockKey) == -1) { $redis->expire($lockKey, 10); } } } return $result; } }

本文共计256个文字,预计阅读时间需要2分钟。

Dynamic cache是什么?

phpDynamic cache get($cacheKey);// 是否需要更新缓存 $update=true;$nowTime=time();if (!empty($result)) { $result=@unserialize($result); $update=$result['expires'] + $nowTime;}if ($update) { $lockKey='lock_' . $cacheKey; // 锁定,防止雪崩}

Dynamic cache是什么?

Dynamic cache

get($cacheKey); // 是否需要更新缓存 $update = true; $nowTime = time(); if( !empty($result) ) { $result = @ unserialize($result); $update = $result['_expires'] < $nowTime; } if($update) { $lockKey = 'lock_'.$cacheKey; // 锁,防雪崩 if( $redis->setnx($lockKey, 1) ) { // 获取需要缓存的数据 $result = SomeClass::getData(); // 数据过期时间, 需要根据这个时间, 判断是否更新缓存 $result['_expires'] = $nowTime + max(1, (int)$expires); // 长时间缓存数据, 在这个期间遇到争锁的情况, 也能正常返回数据 $redis->setex($cacheKey, 12*3600, serialize($result)); // 释放锁 $redis->del($lockKey); } else { // 防止死锁, -1 表示永不过期 if($redis->ttl($lockKey) == -1) { $redis->expire($lockKey, 10); } } } return $result; } }