>  기사  >  백엔드 개발  >  Yii CFileCache가 값을 얻을 수 없는 문제 해결

Yii CFileCache가 값을 얻을 수 없는 문제 해결

*文
*文원래의
2018-01-02 16:21:301669검색

Yii CFileCache가 값을 얻을 수 없는 문제를 해결하는 방법은 무엇입니까? 이 글은 주로 Yii CFileCache가 가치를 얻지 못하는 이유에 대한 분석을 소개합니다. 필요한 친구들이 참고하면 좋습니다. 그것이 모두에게 도움이 되기를 바랍니다.

구성 파일에

‘cache'=>array(
‘class'=>'system.caching.CFileCache',
),

를 구성하고 컨트롤러에

return array(
array(
‘COutputCache+pro',
‘duration'=>86400,
‘varyByParam'=>array(‘id'),
),

를 설정한 다음 데이터베이스 'schemaCachingDuration'=>3600을 열었습니다. ‘schemaCachingDuration'=>3600,

初次使用是有缓存文件的 而且发现 确实加快不少访问速度

但时间一长 在某个时间段 也许是10分钟后 我就发现 runtime/cache 下面的缓存文件突然就没了

不清楚是什么原因 跟踪了好长时间才发现这个问题

另外还发现缓存目录里面还有 文件夹 什么0a d6 63 3a命名的 不知道这是起什么作用的

在线等缓存文件突然没了的原因?

缓存文件在D盘 数据空间是很大的

一、yii的缓冲需要在main.php里面配置,

/****************/
‘cache' => array (
‘class' => ‘system.caching.CFileCache'
)

配置完成以后只需在控制器里面….

Yii::app ()->cache->set($key,$value,$expire);
Yii::app ()->cache->get($key);

二、配置多种缓存

main.php 的配置

‘cache' => array (
‘class' => ‘system.caching.CFileCache'
),
‘dbcache' => array (
‘class' => ‘system.caching.CDbCache'
)

控制器只需用相应的cacheid调用就好

如:Yii::app ()->dbcache

처음으로 캐시 파일이 있고 접속 속도가 많이 빨라진 걸 발견했어요

그런데 시간이 지나서, 아마도 일정 시간, 어쩌면 10분이 지나면 런타임/캐시 아래의 캐시 파일이 갑자기 사라지는 걸 발견했어요

모르겠어요 추적하는데 시간이 오래 걸렸습니다. 이 문제를 발견했습니다

게다가 캐시 디렉터리에 0a d6 63 3a라는 폴더가 있다는 것도 발견했습니다.

이유는. 왜 온라인 대기 중 캐시 파일이 갑자기 없어졌나요?

캐시 파일이 D드라이브 데이터에 들어있어요 공간이 많아요

1. main.php에서 Yii의 버퍼를 설정해야 합니다,

public function filters() {
    return array (
        array (
        ‘COutputCache',
        ‘duration' => 600,
        ‘ varyByParam' => array(‘id')
        )
    );
}

설정 후 완료되면 컨트롤러에서 구성하기만 하면 됩니다...

…some HTML content…
<?php if($this—>beginCache($key))?>
…content to be cached…
<?php $this—>endCache(); ?>
…other HTML content…

2. 여러 캐시 구성

main .php 구성rrreee

컨트롤러는 해당 캐시 ID

로만 호출하면 됩니다. 예: Yii::app ()->dbcache


셋, 페이지 버퍼링은 전체를 캐시하는 것입니다. 페이지는 정적입니다.

main.php 구성은 여전히 ​​동일합니다컨트롤러: 다음을 수행할 수 있습니다. COutputCache 클래스를 컨트롤러 클래스의 동작 필터로 사용합니다. rrreeeCOutputCache는 데이터를 캐싱할 때 자동으로 키 이름을 생성하는 전략으로 사용됩니다. 사용할 수 있는 목록은 다음과 같습니다.

varyByRoute: 이 옵션을 true로 설정하면 특정 요청의 라우팅 부분이 별도 식별자의 일부로 사용되어 캐시 데이터를 생성합니다. 따라서 요청 컨트롤러와 acion의 조합을 사용하여 캐시된 콘텐츠를 구별할 수 있습니다. varyBySession: 이 옵션을 true로 설정하면 고유한 세션 ID가 캐시의 콘텐츠를 구별하는 데 사용됩니다. 각 사용자의 세션은 다르지만 캐시를 제공하는 데 사용될 수 있습니다. varyByParam: 앞서 언급했듯이 입력 GET의 매개변수는 캐시 콘텐츠를 구별하는 데 사용됩니다.

varyByExpression: 이 옵션에 대한 PHP 표현식을 설정하면 해당 표현식의 결과를 사용하여 캐시된 콘텐츠를 구별할 수 있습니다. 또한 COutputCache의 기본 캐시 ID는 캐시입니다.

4. 조각 캐시 🎜🎜🎜조각 캐시는 페이지의 일부를 캐시하는 데 사용됩니다. 뷰 스크립트에서 조각 캐싱을 사용할 수 있습니다. CController::beginCache() 및 CController::endCache() 메서드를 사용하여 이를 수행합니다. 🎜rrreee🎜🎜관련 권장 사항: 🎜🎜🎜🎜🎜🎜Yii2는 Xunsou를 통합하여 효율적인 중국어 단어 분할 검색을 달성합니다.🎜🎜🎜🎜🎜🎜Yiii가 잘못된 코드를 필터링하는 방법🎜🎜🎜🎜🎜🎜Join and Joinwith Yii2의 다중 테이블 연관 쿼리 방법을 사용하세요 🎜🎜🎜

위 내용은 Yii CFileCache가 값을 얻을 수 없는 문제 해결의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.