설명
지속적 객체 캐시는 사이트의 성능을 향상시킵니다. 이 캐시는 널리 사용 가능한 SQLite3 확장 프로그램을 사용하며, 선택적으로 igbinary 및 APCu php 확장 기능을 사용할 수 있습니다. 많은 호스팅 서비스가 이러한 확장 기능을 제공하며, 제어하는 서버에 설치하기도 쉽습니다.
이게 무슨 내용인가요?
사이트의 웹 서버 성능을 향상시키는 것에 관한 내용입니다. 오브젝트 캐시는 MariaDB 또는 MySQL 데이터베이스의 작업량을 줄임으로써 이를 수행합니다. 이것은 페이지 캐시가 아닙니다; 이러한 영속적 오브젝트는 다른 종류의 캐시에 저장됩니다. 이 오브젝트들은 사용자가 브라우저에서 볼 수 있도록 준비된 웹 페이지 조각이 아니라 워드프레스 소프트웨어가 사용하는 데이터 오브젝트입니다.
캐시는 컴퓨팅에서 어디에나 있으며, 워드프레스에는 자체 캐싱 하위 시스템이 있습니다. 캐시는 비용이 큰 데이터베이스 조회나 계산 결과의 단기 복사본을 담고 있어 소프트웨어가 비용이 큰 작업을 반복하는 대신 그 복사본을 사용하게 합니다. 이 플러그인(다른 객체 캐싱 플러그인과 마찬가지로)은 워드프레스의 캐싱 하위 시스템을 확장하여 페이지 보기에서 페이지 보기로 그 단기 복사본을 저장합니다. 워드프레스의 캐시는 우연히도 메모이제이션 캐시입니다.
영속적 오브젝트 캐시가 없으면, 모든 워드프레스 페이지 보기마다 사이트에 대한 모든 정보를 가져오기 위해 MariaDB 또는 MySQL 데이터베이스 서버를 사용해야 합니다. 사용자가 페이지를 요청하면 워드프레스는 처음부터 시작하여 데이터베이스 서버에서 필요한 모든 것을 로드합니다. 그제야 콘텐츠를 사용자에게 전달할 수 있습니다. 영속적 오브젝트 캐시가 있으면 워드프레스는 즉시 필요한 정보의 많은 부분을 로드합니다. 이는 데이터베이스 서버의 부하를 줄이고 사용자에게 콘텐츠를 더 빠르게 전달합니다.
누가 사용해야 하나요?
사이트가 단일 웹 서버 머신에서 실행되고 그 서버가 PHP에 대한 SQLite3 및 igbinary 확장 기능을 제공한다면, 이 플러그인은 거의 확실히 사이트를 더 빠르게 만듭니다. 그리고 그 서버가 APCu 확장 프로그램을 제공한다면, 이 플러그인은 그것도 사용합니다.
일부 호스팅 공급업체는 redis 캐시 서버를 제공합니다. 제공되는 경우 redis는 좋은 선택일 수 있습니다. Redis Object Cache 플러그인을 통해 사용할 수 있습니다. redis를 사용하는 사이트는 하나의 SQL 데이터베이스와 다른 비SQL 저장 서버인 redis를 가집니다. 다른 호스팅 공급업체는 memcached를 제공하며, 이는 Memcached Object Cache 플러그인이 있습니다. 또한 LiteSpeed Cache와 같은 일부 대형 다목적 캐시 플러그인도 이러한 캐시 서버 소프트웨어 패키지 중 하나를 기반으로 한 객체 캐싱을 제공합니다.
캐시-서버 방식의 오브젝트 캐싱은 로드 밸런싱된 여러 대의 웹 서버가 사이트를 처리할 때 진가를 발휘합니다. SQLite는 여러 대의 웹 서버 환경에서는 제대로 작동하지 않습니다.
하지만 단일-서버 사이트 구성에서는 APCu의 도움을 받을 수 있는 SQLite가 성능이 좋습니다. 그리고 대다수의 사이트는 단일-서버입니다.
APCu
APCu는 메모리 내 저장 매체입니다. 워드프레스와 같은 PHP 프로그램이 데이터를 공유 메모리에 저장할 수 있어 필요할 때 아주 빠르게 조회할 수 있습니다. APCu가 호스팅 서버에 설치되어 있다면 이 플러그인을 APCu 사용으로 설정할 수 있습니다. 이는 일반적인 캐시 조회 시간을 SQLite 조회 시간의 5분의 1 이하로 줄여주며, SQLite 조회 시간 자체도 수십 마이크로초 정도입니다. 성능은 특히 트래픽이 많은 웹사이트에서 중요합니다.
APCu를 사용하도록 이 플러그인을 구성하는 방법은 설치를 참조하세요. 이 플러그인은 APCu 없이도 빠르게 동작하며, APCu를 사용하면 더 빠릅니다.
WP-CLI: APCu를 사용 중이더라도 웹사이트가 WP-CLI를 사용할 경우 WP-CLI 프로그램은 APCu 캐시에 접근할 수 없기 때문에 SQLite로의 캐싱이 필요합니다. 이 플러그인은 모든 캐시된 데이터를 APCu와 SQLite 모두에 기록하고 두 캐시가 동기화되도록 보장합니다.
WP-CLI
이 플러그인을 활성화하면 WP-CLI로 제어할 수 있습니다. 자세한 내용은 쉘에 다음 명령어를 입력하세요.
wp help sqlite-object-cache
크레딧
다음에 감사드립니다: Till Krüss. 그의 Redis Object Cache 플러그인은 이 플러그인의 모델이 되었습니다. 그리고 검토해 주신 Ari Stathopoulos님과 Jonny Harris님께 감사드립니다. 과중한 부하가 걸린 시스템에서 발생한 버그를 찾아 고쳐 주신 Matt Jones에게 경의를 표합니다. 테스트 도움을 주신 Massimo Villa님과 포괄적인 코드 리뷰를 해 주신 nickchomey님께 감사드립니다. 모든 결함은 물론 전적으로 작성자의 책임입니다.
그리고 JetBrains가 소프트웨어 개발 도구, 특히 PhpStorm을 제공해 준 것에 감사드립니다. 워드프레스와 같은 방대한 코드베이스를 탐색하는 데 PhpStorm의 도구가 없었다면 이와 같은 플러그인을 개발하는 것은 상상하기 어렵습니다.
내 워드프레스 사이트를 더 효율적으로 만드는 방법을 더 알아보려면 어떻게 해야 하나요?
저희는 사이트의 데이터베이스 효율성 향상을 돕는 여러 플러그인을 제공합니다. 여기에서 자세히 읽어보실 수 있습니다.
설치
이 플러그인이 작동하려면 서버에 PHP용 SQLite3 확장 기능이 반드시 설치되어 있어야 합니다.
igbinary 및 APCu 확장 프로그램이 설치되어 있으면, 이 플러그인은 이를 사용하여 더 효율적으로 동작합니다. 그러나 설치되어 있지 않아도 동작합니다.
SQLite Object Cache” 설치는 워드프레스 대시보드의 “플러그인 > 새로 추가” 화면에서 “SQLite Object Cache”를 검색하여 설치하거나, 다음 단계를 사용하여 설치할 수 있습니다:
- WordPress.org에서 플러그인을 다운로드하세요
- 워드프레스 대시보드의 ‘플러그인 > 새로 추가 > 업로드’ 화면에서 ZIP 파일을 업로드하세요.
- 워드프레스의 ‘플러그인’ 메뉴에서 플러그인을 활성화하세요.
또는, 다음 WP-CLI 명령어를 사용하여 플러그인을 설치하고, 보안 설정을 하고, 활성화하고, 캐시 크기를 32MiB로 설정하세요.
wp plugin install sqlite-object-cache
wp config set WP_CACHE_KEY_SALT $(openssl rand -base64 12)
wp plugin activate sqlite-object-cache
wp sqlite-object-cache size 32
이 플러그인은 wp-config.php 파일에 대한 몇 가지 선택적 설정을 제공합니다. 플러그인이 활성화되어 있는 동안에는 이를 변경하지 마세요. 변경하려면 먼저 플러그인을 비활성화한 다음 변경하고, 그 후 플러그인을 다시 활성화하세요.
- WP_SQLITE_OBJECT_CACHE_SERIALIZE. true이면 이 플러그인은 캐시된 데이터를 SQLite에 저장하기 위해 ‘s serialize() 방식을 강제합니다. 설정되어 있지 않으면, 플러그인은 사용 가능할 경우 더 효율적인 igbinary 방식을 사용합니다.
- WP_SQLITE_OBJECT_CACHE_DB_FILE. 이는 SQLite 파일 경로명입니다. 기본값은
…/wp-content/.ht.object_cache.sqlite입니다. 문서 루트 외부에 SQLite 캐시 파일을 두려면 이 값을 사용하세요. - WP_SQLITE_OBJECT_CACHE_TIMEOUT. 이것은 SQLite 타임아웃을 밀리초 단위로 설정하는 값입니다. 기본값: 5000. (통계 탭에 표시되는 시간은 이 타임아웃 설정과 비교하면 마이크로초 단위임에 유의하세요.)
- WP_SQLITE_OBJECT_CACHE_JOURNAL_MODE. 이는 SQLite 저널 모드입니다. 기본값: ‘WAL’. 가능한 값: DELETE | TRUNCATE | PERSIST | MEMORY | WAL | WAL2 | NONE. (모든 SQLite3 구현이 WAL2를 지원하는 것은 아닙니다.)
- WP_SQLITE_OBJECT_CACHE_APCU. true이면 APCu RAM으로 캐시 가속을 활성화합니다. 이 설정은 플러그인의 설정 페이지에서 업데이트할 수 있습니다.
- WP_CACHE_KEY_SALT. 캐시 키를 추측하기 어렵게 만들려면 이 값을 추측하기 힘든 무작위 값으로 설정하세요. 이 설정은 다른 캐시 플러그인에서도 작동합니다.
캐시 키 솔트 구성하기
여러 사이트가 동일한 서버 하드웨어와 소프트웨어를 공유하면 때때로 동일한 캐시 데이터를 공유할 수 있습니다. 각 사이트에 대해 추측하기 어려운 무작위 값으로 WP_CACHE_KEY_SALT을 설정하면 한 사이트가 다른 사이트의 데이터를 얻기 훨씬 어렵게 됩니다. 이는 다른 캐시 플러그인에도 적용됩니다. 이 WP_CACHE_KEY_SALT 값은 페이지 캐시 및 영속 객체 캐시를 포함한 어떤 캐시 플러그인을 활성화하기 전에 사이트의 wp-config.php 파일에 설정되어 있어야 합니다.
값을 설정하려면 wp-config.php에 다음과 같은 줄을 추가하세요.
define( 'WP_CACHE_KEY_SALT', 'Random_t6xJix' );
물론 이 예제의 값을 사용하지 말고 자체 랜덤 값을 사용하세요. Linux 명령줄 셸에서 openssl rand -base64 12로 생성할 수 있습니다. 또는 WP-CLI를 사용하는 경우 다음과 같이 값을 직접 설정할 수 있습니다.
wp config set WP_CACHE_KEY_SALT $(openssl rand -base64 12)
APCu 설정 및 사용
APCu는 인메모리 저장 매체입니다. 호스팅 서버에서 APCu를 사용할 수 있는 경우 이 플러그인이 이를 사용하도록 구성할 수 있습니다. 플러그인 설정 페이지에서 활성화하는 옵션이 있습니다. 또는 수동으로 설정할 수도 있습니다. wp-config.php 파일에 WP_SQLITE_OBJECT_CACHE_APCU 값을 true로 넣으십시오. 다음 WP-CLI 명령으로 이를 수행할 수 있습니다.
wp config set --raw WP_SQLITE_OBJECT_CACHE_APCU true
또는 이 줄을 추가하려면 wp-config.php 파일을 편집할 수 있습니다.
define( 'WP_SQLITE_OBJECT_CACHE_APCU', true );
FAQ
-
이것은 멀티사이트 워드프레스 설치에서 작동하나요?
-
예. 멀티사이트 설치의 첫 번째 사이트나 모든 사이트에서 설정 > 오브젝트 캐시를 선택하면 설정 페이지를 볼 수 있습니다.
-
이것으로 제 사이트가 얼마나 더 빨라지나요?
-
각 사이트의 속도 향상을 정확히 예측하는 것은 불가능합니다. 그럼에도 불구하고 다른 오브젝트 캐싱 방식과 비교한 벤치마크 결과는 유망합니다. 자세한 내용은 이 링크를 참조하세요. 벤치마크를 실행하시면 그 페이지에 댓글을 남기거나 지원 포럼을 이용해 작성자에게 알려 주세요.
-
내 사이트에 대해 어떤 캐시된 데이터 크기를 사용해야 하나요?
-
캐시된 데이터 크기의 기본값 설정은 16메가바이트(MiB)입니다. 이 플러그인은 실제 캐시된 데이터 크기가 해당 값보다 커지도록 허용하며, 때때로 크기를 설정 값으로 되돌리기 위해 오래된 — 가장 최근에 업데이트되지 않은 — 데이터를 제거합니다. 통계 페이지를 확인하세요. 모든 그룹 아래의 실제 캐시된 데이터 사용량이 지속적으로 설정 값보다 크면 설정 값을 두 배로 늘리세요.
활발하고 대형 사이트를 운영한다면 초기 설정을 32 MiB로 시도한 후 실제 용량 증가에 따라 조정하세요.
이 설정은 캐시 내 데이터의 크기를 제어한다는 점에 유의하십시오. 즉, 그것은 모든 그룹 아래에 표시되는 크기입니다. SQLite에서 사용하는 데이터 파일은 그보다 큽니다.
-
SQLite가 무엇인가요?
-
SQLite는 빠르고 효율적인 데이터베이스 소프트웨어입니다. 별도의 서버를 필요로 하지 않습니다. 대신 SQLite3 확장 기능을 사용해 PHP에 내장되어 있습니다. SQLite 프로그램은 요청을 보내고 응답을 기다리기 위해 네트워크 연결을 열 필요가 없습니다.
-
igbinary가 무엇인가요?
-
igbinary는 캐시에 저장되는 데이터 객체들을 직렬화하고 압축하는 효율적인 방법을 제공하는 php 확장 기능입니다. 경우에 따라 내장된 php 데이터 serializer보다 절반 이하의 저장 공간만 사용합니다. php 설정에서 igbinary를 사용할 수 있으면 이 플러그인은 이를 사용하며,
wp-config.php에서WP_SQLITE_OBJECT_CACHE_SERIALIZE를true로 설정해 강제로 사용하지 않도록 하지 않는 한 그대로 사용합니다. -
APCu란 무엇인가요?
-
APCu는 인메모리 저장 매체를 제공하는 PHP 확장 프로그램입니다. 이 플러그인을 구성하여 캐시 조회 속도를 높이기 위해 사용할 수 있습니다.
-
대부분의 운영체제에서 APCu 캐시의 기본 크기는 설치 시 32MiB입니다. 이 크기를 늘려야 하는 경우
php.ini파일에 apc.shm_size 설정 옵션을 지정하는 한 줄을 추가하면 됩니다. 예를 들어apc.shm_size = 64M라인은 크기를 64MiB로 설정합니다. 이 작업 방법에 대해서는 운영체제 또는 호스팅 공급업체 문서를 참조하십시오.때때로 동일한 서버에서 실행되는 여러 워드프레스 설치가 동일한 APCu 캐시를 공유하므로 이들 모두를 위해 충분한 공간을 제공해야 합니다. 또한 이 플러그인은 작업 가속을 위해서만 APCu를 사용하므로 캐시 크기를 너무 작게 설정했을 때의 영향은 크지 않음을 염두에 두세요.
-
이 플러그인이 MariaDB나 MySQL을 SQLite로 대체합니까?
-
아니요. 귀하의 MariaDB 또는 MySQL 데이터베이스 sql 서버는 여전히 모든 콘텐츠를 보관합니다. 귀하의 모든 사이트의 가져오기, 내보내기, 백업 및 기타 데이터베이스 작업은 계속 정상적으로 작동합니다. 이 플러그인은 단순히 명명된 값을 저장하기 위해 SQLite를 사용합니다. 예를 들어 “글|3″이라는 이름의 값은 3번 글의 임시로 쉽게 가져올 수 있는 캐시 복사본을 저장합니다. 필요할 때 워드프레스는 해당 글을 SQLite에서 빠르게 가져올 수 있습니다.
-
잠깐, 뭐라고? 정말 서로 다른 종류의 SQL 데이터베이스 두 개가 필요한가요?
-
아니요, 그렇지 않습니다. 이 플러그인은 SQLite를 정식 데이터베이스 서버로 사용하지 않습니다.
지속적 오브젝트 캐시는 어떤 형태의 저장 매커니즘을 필요로 합니다. SQLite는 이 플러그인에 빠르고 간단한 키/값 저장 매커니즘을 제공합니다.
일부 호스팅 공급업체는 확장 가능한 고성능 redis 캐시 서버를 제공합니다. Redis Object Cache 플러그인을 통해 이를 사용할 수 있습니다. redis를 사용하는 사이트는 하나의 SQL 데이터베이스와 다른 비SQL 저장 방식인 redis를 가집니다. 일부 다른 호스팅 공급업체는 memcached를 제공하며, 이는 Memcached Object Cache를 갖추고 있습니다.
하지만 많은 호스팅 공급업체는 redis나 memcached를 제공하지 않는 반면 SQLite는 제공합니다. 이 플러그인은 별도의 캐시 서버 없이도 사이트가 영구 객체 캐시를 사용할 수 있도록 활성화합니다. 또한 모든 처리가 웹 서버 내에서 이루어지기 때문에 성능이 좋습니다.
-
이 플러그인이 제 페이지 캐싱 플러그인과 호환되나요?
-
아마도. 페이지 캐싱과 영속 객체 캐싱은 워드프레스에서 완전히 별개의 기능입니다. 다만 일부 다기능 캐싱 플러그인은 Redis나 Memcached를 사용한 선택적 객체 캐싱을 지원합니다. 페이지 캐시 플러그인에서 해당 기능이 활성화되어 있다면, 이 플러그인을 사용하지 않는 것이 좋습니다.
페이지 캐시 플러그인이 영속 객체 캐싱(persistent object caching)도 활성화하는지 확인할 수 있습니다. 플러그인 설치된 플러그인 페이지의 Drop-in 섹션을 보세요. “object-cache.php”라는 드롭인(drop-in)이 언급되어 있으면 해당 페이지 캐시 플러그인이 영속 객체 캐싱을 처리하고 있는 것입니다. 이 플러그인을 사용하기 전에 해당 기능을 비활성화해야 합니다.
이 플러그인 사용자는 WP Rocket, LiteSpeed Cache, WP Total Cache, WP Super Cache, WP Fastest Cache와 잘 작동한다고 보고했습니다. 또한 Cloudflare 및 기타 콘텐츠 전송 네트워크와도 작동합니다. 작성자는 이 영역에서의 불호환성을 알지 못합니다. (만약 발견하시면 제발 지원 포럼에 글을 올려 주세요!)
-
내 백엔드 대시보드나 선택한 다른 페이지 또는 REST API 작업에 대해 객체 캐싱을 비활성화할 수 있나요?
-
번호
그건 객체 캐싱의 작동 방식이 아닙니다. 페이지 캐싱과는 다릅니다. 객체 캐싱은 전체 페이지 수준이 아니라 워드프레스 코드 내 개별 데이터베이스 작업 수준에서 작동합니다.
-
이 플러그인이 제 MySQL 또는 MariaDB 버전과 호환되나요?
-
예. 특정 데이터베이스 서버 버전을 필요로 하지 않습니다.
-
이 영구 객체 캐시는 Redis나 memcached보다 더 빠른가요?
-
예. 해당 캐시 서버들은 워드프레스가 왕복 네트워크 요청을 하도록 요구하는 반면, 이 서버는 그렇지 않습니다. 많은 사용자들이 이 캐싱 방법이 빠르다고 느꼈습니다.
-
이 캐시는 내 서버 HDD/SSD의 파일을 사용하고, redis와 memcached는 RAM을 사용합니다. RAM이 더 빠르지 않나요?
-
RAM은 확실히 더 빠릅니다. 최신 서버 운영체제는 파일에 대한 광범위한 페이지 캐싱을 제공하며, SQLite는 이를 활용하도록 설계되어 필요한 데이터가 이미 RAM에 있을 수 있습니다. 별도의 캐시 서버를 사용하면 웹 서버가 네트워크 요청을 보내고 응답을 기다려야 하지만, SQLite를 사용하면 그렇지 않습니다.
-
사이트의 메인 MariaDB 또는 MySql 데이터베이스 서버를 오브젝트 캐시용으로 사용하지 않는 이유는 무엇인가요?
-
워드프레스에서, 많은 웹 프레임워크와 마찬가지로 데이터베이스 서버는 성능 병목입니다. 오브젝트 캐시에 다른 메커니즘을 사용하면 데이터베이스 작업량을 늘리지 않습니다. 웹 서버는 여러 PHP 프로세스로 페이지를 제공하며, 각 프로세스는 공유된 데이터베이스 파일을 업데이트하면서 자체적인 SQLite 작업을 처리합니다. 이렇게 하면 오브젝트 캐시 작업량이 중앙집중화되지 않고 여러 프로세스에 분산됩니다.
-
SQLite의 데이터를 백업해야 하나요?
-
아니요. 캐시일 뿐이며 그 안의 모든 것은 일시적입니다. 워드프레스가 캐시에서 필요한 항목을 찾지 못하면 단순히 다시 계산하거나 데이터베이스에서 다시 가져옵니다.
SQLite 파일을 백업하지 않으려면 백업 플러그인에
*.sqlite,*.sqlite-wal,*.sqlite-wal2,*.sqlite-shm파일을 건너뛰도록 지시하세요.이 플러그인은 Updraft Plus, BackWPUp, 또는 WP STAGING 플러그인을 사용할 때 SQLite 데이터를 자동으로 백업에서 제외합니다. Duplicator 플러그인은 해당 파일들의 복사를 자동으로 제외하는 방법을 제공하지 않습니다.
다른 백업 또는 클로닝 플러그인을 사용 중이라면 지원 토픽을 생성하여 작성자에게 알려 주세요. 이 플러그인이 해당 플러그인에게 SQLite 파일 백업을 건너뛰도록 지시할 수 있을 수도 있습니다.
-
이미 다른 지속성 객체 캐시 플러그인이 있는 경우 이 플러그인을 사용할 수 있나요?
-
아니요. 지속적인 오브젝트 캐시 플러그인은 하나만 필요하며, 워드프레스는 하나만 지원합니다.
-
확장된 로드밸런싱 설치를 운영하는 경우, 이것을 사용할 수 있나요?
-
안 됩니다. 웹 서버가 하나보다 많은 경우에는 이것이 제대로 작동하지 않습니다. 그 정도 규모로 운영한다면 Redis나 다른 캐시 서버를 사용하십시오. (부하 분산 설치인지 확실하지 않다면, 거의 확실히 아닙니다.)
SQLite 파일을 CIFS, SMB, NFS 또는 기타 드라이브 공유 프로토콜을 통해 공유 네트워크 드라이브에 두면 제대로 작동하지 않을 수 있습니다.
-
이것을 Performance Lab 플러그인과 함께 사용할 수 있나요?
-
예, 그렇지만 먼저 이 플러그인을 활성화한 다음 Performance Lab를 활성화해야 합니다. 그리고 이 플러그인을 마지막으로 비활성화하기 전에 반드시 Performance Lab을 비활성화해야 합니다.
Performance Lab 플러그인은 사이트를 더 빠르게 만드는 몇 가지 고급 및 실험적 방법을 제공합니다. 그 기능 중 하나는 성능 추적을 시작하기 위해 객체 캐시 초기화 코드를 사용합니다. 따라서 둘 다 작동하게 하려면 활성화 순서가 필수입니다.
-
이 객체 캐시를 제 플러그인이나 테마 코드에서 어떻게 사용해서 더 빠르게 실행할 수 있나요?
-
간단합니다. 캐시 가능한 데이터를 저장하려면 임시 항목을 사용하세요. 워드프레스의 Transient API는 영구 객체 캐시가 사용 가능한 경우 이를 사용하고, 그렇지 않을 경우 MariaDB나 MySQL 데이터베이스를 사용합니다. Metadata API와 Options API도 영구 객체 캐시를 사용합니다.
-
이건 어떻게 작동하나요?
-
이 플러그인은 WP_Cache 클래스의 기능을 확장하기 위해 WordPress 드롭인을 사용합니다. 플러그인을 활성화하면 드롭인 파일
.../wp-content/object-cache.php를 생성합니다. 비활성화 시 해당 파일과 캐시된 데이터를 제거합니다. -
플러그인은 캐시된 데이터를 어디에 저장하나요?
-
해당 파일은 사이트의
wp_content디렉터리에 있으며 파일명은.ht.object-cache.sqlite입니다. 이 파일명에.ht.접두어가 붙은 것은 웹 서버가 해당 파일의 다운로드를 허용하지 않도록 하기 위함입니다. SQLite는 때때로.ht.object-cache.sqlite-shm및.ht.object-cache.sqlite-wal라는 파일도 사용하므로 이들 파일 중 하나를 볼 수 있습니다.플러그인이 파일을 다른 위치에 두게 하려면 원하는 경로명을
wp-config.php의WP_SQLITE_OBJECT_CACHE_DB_FILE에 넣으세요.Linux 및 기타 UNIX 계열 운영체제에서는 이름이 점(.)으로 시작하는 파일을 보려면
ls -a명령을 실행해야 합니다. -
캐시된 데이터를 더 안전한 장소에 저장하고 싶습니다. 어떻게 하면 될까요?
-
.sqlite 파일을 사이트의 문서 루트 밖에 두는 것은 좋은 보안 관행입니다. 설정 방법은 다음과 같습니다.
WP_SQLITE_OBJECT_CACHE_DB_FILE상수를wp_config.php에 정의하면 플러그인은 대신 해당 값을 sqlite 파일 경로명으로 사용합니다. 예를 들어wp-config.php에 다음 줄이 포함되어 있다면define( 'WP_SQLITE_OBJECT_CACHE_DB_FILE', '/tmp/mysite-object-cache.sqlite' );귀하의 객체 캐시 데이터는
/tmp폴더의mysite-object-cache.sqlite라는 파일에 저장됩니다.다음과 같이 추측하기 어려운 문자열로
WP_CACHE_KEY_SALT를 정의할 수도 있습니다. 예를 들면, 이 줄은define( 'WP_CACHE_KEY_SALT', 'qrstuv' );귀하의 객체 캐시 데이터가
/tmp폴더의mysite-object-cache.qrstuv.sqlite라는 파일로 저장됩니다. -
이 플러그인이 SQLite 메모리 맵 I/O를 사용할 수 있습니까?
-
예. 운영체제의 메모리 맵 기능을 사용하여 SQLite 메모리-맵 I/O로 캐시 데이터를 접근하고 공유할 수 있습니다. 일부 서버 구성에서는 이것이 여러 PHP 프로세스가 캐시된 데이터를 더 빠르게 공유하도록 허용합니다. 플러그인에서는 기본값으로 사용 안 함으로 설정되어 있습니다. 플러그인에 메모리 맵으로 사용할 MiB 수를 알려 주어 활성화할 수 있습니다. 예를 들어, 이 wp-config 설정은 플러그인이 32MiB를 사용하도록 지시합니다.
define( 'WP_SQLITE_OBJECT_CACHE_MMAP_SIZE', 32 );메모리 매핑 I/O를 사용해도 트래픽이 많은 웹 서버의 높은 동시성 환경에서는 성능에 도움이 되지 않을 수 있다는 점에 유의하세요. 그래서 이것은 기본값으로 비활성화되어 있습니다. 또한 이러한 종류의 메모리 매핑은 APCu 캐시와 동일한 것이 아님을 유의하세요.
-
가끔 SQLite에서 타임아웃 오류가 발생합니다. 어떻게 해결할 수 있나요?
-
일부 사이트는 가끔 다음과 같은 오류 메시지를 생성합니다:
Unable to execute statement: database is locked in /var/www/wp-content/object-cache.php:1234이 문제는 귀하의 서버가 워드프레스 파일을 네트워크에 연결된 스토리지(즉, 네트워크 드라이브)에 두는 경우 발생할 수 있습니다. 이를 해결하려면 캐시된 데이터를 로컬에 연결된 드라이브에 저장하세요. 데이터를 보다 안전한 장소에 저장하는 것에 대한 질문을 참조하십시오. 매우 트래픽이 많은 사이트에서도 이 문제가 발생할 수 있습니다.
타임아웃 오류는 캐시된 데이터 크기 또는 사이트가 매우 큰 경우에도 발생할 수 있습니다. 캐시된 데이터 크기를 줄여 보세요. 그래도 타임아웃 오류가 사라지지 않으면
wp-config.php파일에서WP_SQLITE_OBJECT_CACHE_TIMEOUT파라미터를 기본값인 5000밀리초보다 큰 값으로 설정해 보세요. -
WP-CLI로 내 사이트를 관리할 때 왜 오류가 발생하나요?
-
때때로 WP-CLI가 쉘에서 실행될 때 웹 서버와 다른 사용자로 실행됩니다. 이 플러그인은 하나 이상의 객체-캐시 파일을 생성합니다. 객체-캐시 파일은 wp-cli 사용자가 생성한 경우 웹 서버에서 읽거나 쓸 수 없을 수 있습니다. 또는 그 반대의 경우도 있습니다.
Linux에서 WP-CLI 셸 명령을 다음과 같이 실행할 수 있습니다:
sudo -u www-data wp config list이렇게 하면 웹 서버와 동일한 사용자로 실행됩니다. -
이 플러그인은 IIS 웹 서버가 설치된 Microsoft Windows 운영체제에서 호스팅되는 사이트에서 작동하나요?
-
예. 그러나 사용자가 APCu 사용 시 캐시 손상(corruption)이 보고되었다는 점을 유의해 주십시오. 그리고 PHP 실행 파일과 DLL은 이른바 ‘비 스레드 안전(non thread safe)’ 버전을 사용하시기 바랍니다.
-
통계 표시가 복잡해 보입니다. 이 모든 것이 무엇을 의미하나요?
-
이 플러그인은 캐시에서 항목을 조회하는 데 걸리는 시간과 같은 개별 작업을 측정합니다. 개별 측정값들을 수집합니다. 통계 보이다는 이들을 분석하여 가장 빠른 작업과 가장 느린 작업, 평균 작업 및 기타 기술 통계를 표시합니다.
자세한 정보는 여기를 읽어 주세요. -
이거 어딘가에 농담이라도 섞여 있나요?
-
Q: 컴퓨터 과학에서 정확히 맞추기 가장 어려운 두 가지는 무엇인가요?
- 항목 캐싱.
- 이름 붙이기.
- 인덱스가 하나씩 어긋나는 오류 처리
진지하게 말하면, 워드프레스 코어는 수년의 개발과 수백만 개의 사이트를 통해 이미 항목을 캐시하고 이름을 정하는 방법을 확립해 왔습니다. 이 플러그인과 다른 영구 객체 캐시 플러그인들은 단지 그 메커니즘을 확장하여 해당 항목들을 영구화할 뿐입니다.
-
질문이 하나 더 있습니다
-
더 많은 질문과 답변은 여기를 확인하세요. 또는 지원 포럼에서 질문하세요. 지원 포럼에 글을 올리실 경우, 도구사이트 상태정보로 가셔서 거기서 사이트 정보를 복사해 지원 글에 붙여넣어 주세요.
후기
기여자 & 개발자
변경이력
1.6.0
- 멀티사이트: 설정 및 통계 패널을 메인 사이트에만 표시합니다.
1.5.7
- 소프트웨어 설치 또는 업그레이드 작업 직후 캐시를 즉시 제거하십시오.
- 활성화 및 비활성화 시 데이터 상태를 제거하기 위해 데이터베이스에서 모든 임시 항목을 삭제합니다.
- 도움말 탭을 추가하고 통계 표시에 하이퍼링크를 추가합니다.
1.5.6
- 진단 정보를 생성하는 동안 경고를 수정함.
- wp-config.php를 더 견고하게 업데이트합니다.
1.5.5
- 일부 진단 데이터가 사이트 상태 – 정보에 표시됩니다.
- 드롭인(drop-in)은 미종결 재귀(unterminated recursion)를 제거하기 위해 더 이상 번역을 조기에 불러오려고 시도하지 않습니다.
- 오래된 SQLite 버전에서 인덱스 생성 문제를 수정했습니다.
1.5.4
- 비영구적 그룹, get_multiple 캐시 미스, MS-DOS 줄바꿈(CRLF)을 올바르게 처리합니다.
1.5.2
- 오브젝트 가져오기에서 회귀 버그 수정(필요 시 복제하지 않던 문제 해결).
- 설정 변경 직후 ‘Use APCu’ 체크박스의 잘못된 표시 수정
1.5.1
- 설정 페이지에서 APCu 옵트인 제공.
1.5.0
- 가능하고 WP_SQLITE_OBJECT_CACHE_APCU가 정의되어 있으면 성능 향상을 위해 APCu를 사용하세요.


