> 백엔드 개발 > PHP 튜토리얼 > thinkPHP5 프레임워크 데이터베이스 캐시() 사용법

thinkPHP5 프레임워크 데이터베이스 캐시() 사용법

小云云
풀어 주다: 2023-03-19 12:56:02
원래의
6306명이 탐색했습니다.

이 글에서는 thinkPHP5 프레임워크 데이터베이스의 일관성 있는 작업에서 캐시()의 사용법을 주로 소개합니다. ThinkPHP5에서 캐시의 적용 시나리오와 캐시 설정, 업데이트, 삭제 작업 기술을 분석합니다. 도움이 필요한 친구들이 모두 참고할 수 있기를 바랍니다.

소개

TP5에 포함된 캐시 시스템은 파일 형식 캐시입니다. 즉, 파일 유형 캐시입니다. 저장소 주소는 루트 디렉터리..runtimecache입니다(루트 디렉터리는 공용을 참조함).

redis와 비교하면 memcached는 확실히 이 캐싱 시스템에 한계가 있고, 자동 업데이트와 캐시된 데이터의 복잡성에도 차이가 있습니다. 하지만 몇 가지 간단한 쿼리에는 매우 유용합니다. 예를 들어 기사나 기타 콘텐츠를 활용하는 것이 좋습니다.

cache는 선택, 찾기, 값 및 열 방법과 그 파생 방법에 사용할 수 있습니다. 캐시 방법을 사용한 후에는 캐시 유효 기간 내에 데이터베이스 쿼리 작업이 다시 수행되지 않지만 캐시에 있는 데이터는 데이터 캐싱 정보 유형 및 설정은 캐시 섹션에서 확인할 수 있습니다.

저장 캐시

1. 단순 저장


//查询news表中id=10的新闻存储于cache中,写true默认读取配置的中缓存时间,db():助手函数
db('news')->cache(true)->find(10);
//你也可以自定义时间,60秒表示
db('news')->cache(true,60)->find(10);
로그인 후 복사

2. 캐시 ID 지정


//缓存标识可以理解为键,就是当你想要去取出缓存中的某条数据的令牌,id=15的存进cache并且给定下标为key
db('news')->cache('key')->find(15);
//当你想要去取出id=15的这条数据时候
$data = \think\Cahce::get('key');
로그인 후 복사

이 데이터는 어디서나 읽을 수 있으며 세션()과 유사합니다. 캐시 방법은 캐시 태그 설정을 지원합니다

db('news')->cache('key',60,'tagName')->find(15);
로그인 후 복사

Update 캐시이제 프로젝트가 일정 기간 동안 실행되면 많은 캐시 파일이 생성됩니다. 파일이 점점 더 많아지고 각 요청에 대한 캐시 파일을 찾는 데 낭비되는 시간은 데이터베이스를 직접 쿼리하는 것보다 느릴 수 있습니다. 무엇을 해야 할까요?

TP5에는 캐시 자동 업데이트 방식이 있습니다. 즉, 동일한 데이터가 삭제되거나 업데이트되면 기존 캐시 파일이 자동으로 삭제됩니다.

//查询id=328的存进cache
$list = db('news')->cache(true)->find(328);
//现在进行测试下,你手动去数据库修改id=328的某个字段的值,然后再次进行第一次的查询请求发现数据库修改的字段没变,这时候就是读取的缓存,然后
db('news')->update(['id'=>328,'title'=>'测试']);
//这时候你再次请求会发现获取的数据改变了 ,这时候不再是读取的缓存,因为你做了更新操作,重新写进缓存了,当然,以上说的这种情况前提是使用的主键查询的
로그인 후 복사

관련 추천:

PHP Clearstatcache() 함수 사용에 대한 자세한 설명

PHP Clearstatcache() 함수에 대한 추천 글

ThinkPHP3.1 Quick Start(4) 연속 작업

위 내용은 thinkPHP5 프레임워크 데이터베이스 캐시() 사용법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿