설명
Docket Cache는 일반 PHP 코드로 데이터를 저장하도록 설계된 영구적인 워드프레스 객체 캐시 솔루션입니다. Redis 또는 Memcached 서버를 활용할 수 없는 사용자에게 효율적인 대안을 제공합니다.
PHP 객체를 직렬화 및 역직렬화하여 플랫 파일에 저장하는 기존 방식과 달리, 이 플러그인은 객체를 일반 PHP 코드로 변환합니다. 이 방법은 특히 Zend OPcache와 함께 사용할 경우 데이터 검색 속도와 전반적인 성능을 크게 향상시킵니다.
자세한 내용은 워드프레스 캐싱에 대한 설명서를 참조하세요.
왜 이 플러그인을 사용해야 하나요?
워드프레스에서 안정적인 영구 객체 캐시를 사용하려면 Redis 나 Memcached가 가장 적합합니다. 하지만 이러한 솔루션은 서버에 대한 전문 지식이 필요하고, 저가형이나 공유 호스팅 서버에서는 거의 사용할 수 없습니다.
유일하게 실행 가능한 해결책은 객체 캐시를 파일에 저장하는 것입니다. 워드프레스에서는 PHP 객체를 내보내는 것이 쉽지 않습니다. 파일 기반 캐싱을 구현하는 대부분의 플러그인은 객체를 직렬화하고 역직렬화하여 데이터를 저장하고 검색합니다.
Docket Cache는 객체 캐시를 일반 PHP 코드로 변환하는 더 나은 접근 방식을 제공합니다. 워드프레스가 다른 작업을 실행하지 않고 캐시를 직접 사용할 수 있으므로 이 솔루션은 더 빠릅니다.
특징
- 객체 캐싱 + OPcache
- 고급 글 캐싱
- 객체 캐시 사전 캐싱
- 워드프레스 메뉴 캐싱
- 워드프레스 번역 캐싱
- 워드프레스 코어 쿼리 최적화
- 용어 수 쿼리 최적화
- 글, 페이지, 댓글 수 최적화
- 데이터베이스 테이블 최적화
- 우커머스 최적화
- WP 옵션 자동로드 서스펜션
- 놓친 일정 조정 게시
- 객체 캐시 + OPcache 통계 + OPcache 뷰어
- 캐시 로그
- Cronbot 서비스
- WP-CLI 지원
- 다중사이트/다중네트워크 지원
요구 사항
Docket Cache를 사용하려면 최소한 다음이 필요합니다.
- PHP 7.2.5
- 워드프레스 5.4
- Zend OPcache
문서
플러그인 동작, 설치 또는 명령줄을 통한 관리를 조정하려면 자세한 내용은 설명서를 참조하세요.
개발
이 프로젝트를 후원하세요
오픈 소스 개발 활동을 지원하기 위해 일회성 또는 정기 결제로 Docket Cache 펀딩을 제공합니다 .
주목할 만한 후원사:
진심으로 감사드립니다.
- Jimat Hosting
- Themecloud
- Websavers Inc
- Avunu LLC
- Linqru
- Gentleman’s Guru
- SecurePay
- DNSVault
- Exnano Creative
명예 목록에는 다른 후원자들이 언급되어 있습니다.
설치
Docket Cache를 사용하려면 최상의 성능을 위해 최소 PHP 7.2.5, 워드프레스 5.4 및 Zend OPcache가 필요합니다.
- 워드프레스 관리자에서 플러그인 -> 새로 추가를 클릭하세요.
- 플러그인 “Docket Cache”를 검색하고 지금 설치를 클릭하세요.
- 멀티사이트 설정에서 활성화 또는 네트워크 활성화를 클릭합니다.
- 왼쪽 메뉴에서 Docket Cache를 클릭하면 관리 페이지에 접속할 수 있습니다.
Docket Cache가 객체를 캐싱할 준비가 될 때까지 약 5초 정도 기다려 주세요.
FAQ
-
워드프레스의 객체 캐싱이란 무엇인가요?
-
객체 캐싱은 데이터베이스 쿼리 결과를 저장하여 다음에 필요할 때 빠르게 불러올 수 있는 프로세스입니다.
캐시된 객체는 데이터베이스에 여러 요청을 보내는 대신 캐시에서 즉시 제공됩니다. 이는 더 효율적이며 서버에 불필요한 부하를 줄여줍니다.
간단히 말해서, 객체 캐싱은 자주 사용되는 객체를 더 가까운 위치에 복사하여 저장해 두면 더 빠르게 사용할 수 있습니다.
-
객체 캐싱에서 Docket Cache란 무엇인가요?
-
기본적으로 워드프레스의 객체 캐시는 비영구적입니다. 즉, 캐시에 저장된 데이터는 요청 기간 동안만 메모리에 저장됩니다. 캐시된 데이터는 페이지 로드 시 영구적으로 저장되지 않습니다. 캐시를 영구적으로 저장하려면 객체 캐시를 로컬 디스크에 저장해야 합니다.
Docket Cache는 객체 캐시를 저장할 뿐만 아니라, 객체 캐시를 일반 PHP 코드로 변환합니다. 워드프레스에서 다른 작업을 실행하지 않고도 캐시를 직접 사용할 수 있으므로 이 솔루션은 더 빠릅니다.
-
Docket Cache의 OPcache란 무엇인가요?
-
OPcache는 PHP에 내장된 캐싱 엔진으로, 미리 컴파일된 스크립트 바이트코드를 공유 메모리에 저장하여 성능을 향상시킵니다. 이를 통해 PHP가 각 요청에서 스크립트를 로드하고 구문 분석할 필요가 없습니다.
Docket Cache는 객체 캐시를 일반 PHP 코드로 변환합니다. 캐시를 읽고 쓸 때 OPcache를 직접 사용하여 데이터 검색 속도와 성능을 향상시킵니다.
-
Docket Cache의 Cronbot 서비스란 무엇인가요?
-
Cronbot은 워드프레스 Cron이 활발하게 실행되도록 매시간 웹사이트에 핑을 보내는 외부 서비스입니다.
이 서비스는 대체 옵션으로 제공되며 필수 사항은 아닙니다. 기본적으로 이 서비스는 엔드포인트 서버에 연결되지 않습니다. 구성 페이지에서 완전히 비활성화할 수 있습니다.
-
Docket Cache의 가비지 컬렉터란 무엇입니까?
-
가비지 컬렉터는 5분마다 실행되어 캐시 파일을 의도적으로 모니터링하여 정리하고 통계를 수집하는 Cron 이벤트입니다.
-
Docket Cache의 RAM 디스크란 무엇인가요?
-
RAM 디스크는 RAM 리소스를 사용하는 하드 디스크의 표현이며, 하드웨어 장치나 가상 디스크의 형태를 취할 수 있습니다.
RAM의 읽기 및 쓰기 속도는 SSD 드라이브보다 몇 배나 빠르므로 RAM 디스크에 Docket Cache 파일을 저장하면 성능이 크게 향상됩니다.
RAM 디스크를 만들려면 서버 관리자 권한(루트 접근)이 필요하므로 이 솔루션은 공유 호스팅 서버에 적합하지 않습니다.
다음은 Docket Cache를 사용하여 RAM 디스크를 만들고 사용하는 예제 명령입니다.
$ cd wp-content/ $ sudo mount -t tmpfs -o size=500m tmpfs ./cache/docket-cache부팅 시 캐시 경로를 자동으로 마운트하려면 /etc/fstab 파일을 업데이트해야 합니다.
RAM 디스크에 대한 내용은 아래 문서를 참조하세요.
Windows OS에서 사용하려면 RAM 디스크를 만들고 DOCKET_CACHE_PATH가 RAM 디스크 드라이브를 가리키도록 변경하세요.
-
기본적으로 워드프레스는 메모리 제한을 256MB로 할당합니다. MySQL과 웹 서버를 함께 사용하면 256MB 이상이 필요합니다. 총 사용량에 256MB만 할당하는 저렴한 호스팅 플랜을 사용하는 경우, 이는 충분하지 않으며 Docket Cache는 웹사이트 성능을 개선할 수 없습니다.
-
다른 객체 캐시 플러그인과의 차이점은 무엇인가요?
-
Docket Cache는 객체 캐시 가속기입니다. 객체 캐시를 저장하기 전에 캐시 게시글 쿼리, 댓글 수 계산, 워드프레스 번역 등 캐싱 최적화를 수행합니다.
-
다른 캐시 플러그인과 함께 사용할 수 있나요?
-
예, 아니오. 페이지 캐싱 플러그인과 함께 사용할 수 있지만, 객체 캐시 플러그인과 함께 사용할 수는 없습니다.
-
LiteSpeed Cache와 함께 사용하여 페어링할 수 있나요?
-
네, 가능합니다. LiteSpeed Cache 플러그인에는 객체 캐시 기능이 있습니다. 현재 기본적으로 Docket Cache를 비활성화할지 묻는 알림이 표시됩니다. Docket Cache를 사용하려면 LiteSpeed Cache 객체 캐시만 해제하면 됩니다.
-
우커머스가 많은 스토어에서 Docket Cache를 사용할 수 있나요?
-
네, 그리고 아니요. 제안하신 대로 Docket Cache는 Redis나 Memcached와 같은 인메모리 캐시의 대안입니다. 스토어 설정 방식에 따라 달라질 수 있으며, 구성을 추가로 조정하거나 다른 최적화 작업이 필요할 수 있습니다.
-
VPS 서버를 사용하고 있습니다. Docket Cache를 사용하여 Redis를 대체할 수 있나요?
-
네, 가능합니다. 네트워크 연결이 필요 없고 메모리 버스트, 캐시 키 충돌, 잘못된 설정으로 인한 오류 발생에 대한 걱정이 없어 워드프레스 성능을 더욱 향상시킬 수 있습니다.
후기
기여자 & 개발자
변경이력
24.07.04
- Fixed: View::parse_log_query() -> proper handling file path traversal.
24.07.03
- 수정: View::render() -> 하위 페이지 이름을 적절하게 처리합니다.
- 수정: Event::garbage_collector() -> is_wp_cache_group_queries() 메서드가 누락되었습니다.
24.07.02
- 수정: _load_textdomain_just_in_time이 잘못 호출되었습니다.
- 수정: blueprint.json -> 더 이상 사용되지 않는 pluginZipFile 속성.
- 업데이트: 6.7까지 테스트되었습니다.
24.07.01
- 수정: View::tooltip() -> 오타 “dan”.
- 수정: Filesystem::sanitize_maxsizedisk() -> 비어 있으면 기본값을 반환합니다.
- 추가: 모든 opcache 파일을 나열하는 기능을 활성화/비활성화하는 DOCKET_CACHE_OPCVIEWER_SHOWALL 상수가 추가되었습니다.
- 추가: DOCKET_CACHE_PATH_NETWORK_(n) 상수는 멀티네트워크의 기본 캐시 경로를 변경합니다. (n)은 네트워크 ID입니다.
23.08.02
- 수정: Tweaks::post_missed_schedule() -> 글이 즉시 게시되지 않도록 합니다.
- 수정: WP_Object_Cache() -> 이전 버전과의 호환성을 위해 세터와 게터를 추가합니다.
- 추가: 단일 검색 결과를 페이지로 리디렉션하는 기능을 비활성화하는 TWEAKS_SINGLESEARCHREDIRECT_DISABLED 상수가 추가되었습니다.
- 업데이트: 6.4까지 테스트되었습니다.
23.08.01
- 수정: LimitBulkedit::bulk_editing_is_limited() -> 더 이상 사용되지 않는 상수 FILTER_SANITIZE_STRING.
- 수정: restrict_api 오류 알림.
- 수정: Disable Serve Happy Checking을 활성화하면 오래된 PHP 경고가 발생합니다.
- 업데이트: 6.3까지 테스트되었습니다.
22.07.05
- 수정: Plugin::register_plugin_hooks() -> 정의되지 않은 속성: stdClass::$slug.
- 수정: Event::garbage_collector() -> 오래된 캐시, comment_feed에 대한 잘못된 필터.
- 수정: Event::garbage_collector() -> 오래된 캐시, adjacent_post, wp_get_archives 및 get_comment_child_ids에 대한 필터 추가.
- 수정: Tweaks::wplazyload() -> wp_get_attachment_image_attributes에 대한 필터 추가.
- 수정: WP_Object_Cache::dc_save() -> 데이터 유형이 “알 수 없는 유형”인 경우 false를 반환합니다.
- 추가: Filesystem::is_wp_cache_group_queries() -> *-쿼리에 대한 일치 그룹.
- 추가: WP_Object_Cache::maybe_expire() -> *-쿼리에 대한 일치 그룹.
버그를 보고해 준 web55.se의 Ronny에게 감사드립니다.
22.07.04
- 수정: 고급 글 캐시 -> wp < 6.1.1에서만 볼 수 있음(이미 wp 코어에 구현되어 있음(WP_Query 캐싱).
- 수정: Filesystem::shutdown_cleanup() -> 파일이 비어 있는 경우 종료 시 정리를 수행하지 않습니다.
- 수정: Plugin::register_plugin_hooks() -> Cronbot이 비활성화된 경우 CronAgent 클래스를 로드하지 않습니다.
- 수정: TermCount() -> clean_term_cache의 잘못된 사용.
- 수정: WP_Object_Cache::$cache_hits, WP_Object_Cache::$cache_misses -> 비지속형과 동일하게 유지됨.
- 수정: 성능 랩이 개체 캐시 드롭인을 덮어쓰지 못하도록 방지합니다.
- 수정: Becache::export_alloptions() -> 자동 로드가 ‘예’인 경우에만 내보내기 옵션을 제공하고 일시적이지 않습니다.
- 수정: Becache::store_cache() -> array_serialize와 일치하지 않습니다.
- 추가: WP_Object_Cache::$persistent_cache_hits -> 캐시 파일의 통계 조회수.
- 추가: Tweaks::wpquery() -> wp_allow_query_attachment_by_filename(wp > 6.0.1용).
- 추가: 구성 -> 캐시 옵션, DB에 임시 데이터 보관.
- 추가: 구성 -> 최적화, 대량 편집 작업 제한.
- 추가: 구성 -> Wp Tweaks, 이메일을 통한 글 비활성화.
- 추가: DOCKET_CACHE_TRANSIENTDB 상수를 추가하여 데이터베이스에서 Transients를 유지할 수 있습니다.
- 추가: DOCKET_CACHE_IGNORED_TRANSIENTDB 상수. DB 대신 객체 캐시에 남아 있는 캐시 키 목록입니다.
- 추가: 이메일을 통한 게시 기능을 비활성화하기 위해 DOCKET_CACHE_POSTVIAEMAIL 상수가 추가되었습니다.
- 추가: 대량 편집 작업 제한을 활성화하기 위한 DOCKET_CACHE_LIMITBULKEDIT 상수가 추가되었습니다.
- 추가: 대량 편집 제한을 변경하는 DOCKET_CACHE_LIMITBULKEDIT_LIMIT 상수. 기본적으로 100으로 설정되어 있습니다.
- 변경: 고급 글 캐시, 코드 일부가 Tweaks::wpquery()로 이동되었습니다.
- 제거: WP_Object_Cache::is_data_uptodate() -> 더 이상 필요하지 않습니다.
- 업데이트: Symfony 구성 요소 -> symfony/var-exporter v5.4.21.
22.07.03
- 수정: Tweaks::woocommerce_misc() -> 예약된 작업 페이지에서 목록이 사라지는 것을 방지하기 위해 action_scheduler_migration_status가 완료되었는지 확인합니다.
- 수정: Tweaks::woocommerce_widget_remove() -> 클래식 위젯이 비활성화되지 않습니다.
- 수정: Plugin::get_precache_maxfile() -> 잘못된 상수, maxfile을 precache_maxfile로 교체합니다.
- 수정: Filesystem::sanitize_precache_maxfile() -> 기본적으로 한도를 100으로 설정합니다.
- 수정: Becache::export() -> 만료 시간이 잘못되었습니다. 이미 타임스탬프 형식이며 초 형식이 아닙니다.
- 수정: WP_Object_Cache::dc_save() -> 객체 크기를 확인할 때 두 번 직렬화합니다.
- 수정: 구성 -> 상수가 이미 정의된 경우 알림이 표시되지 않습니다.
- 추가: 구성 -> 저장소 옵션, 실시간으로 파일 제한 확인 및 빈 개체 데이터 제외.
- 추가: 구성 -> 런타임 옵션, WP-Admin 스크립트 연결 비활성화 및 WP Cron 비활성화.
- 추가: WP-CLI 명령 -> 실행:optimizedb.
- 추가: DOCKET_CACHE_MAXFILE_LIVECHECK 상수가 추가되어 파일 제한을 실시간으로 확인할 수 있습니다.
- 추가: 캐시 키와 그룹을 제한하기 위한 DOCKET_CACHE_PRECACHE_MAXKEY, DOCKET_CACHE_PRECACHE_MAXGROUP 상수.
- 추가: DOCKET_CACHE_STALECACHE_IGNORE 상수를 추가하여 오래된 캐시가 디스크에 저장되는 것을 방지합니다.
- 추가: DOCKET_CACHE_EMPTYCACHE 상수를 추가하여 디스크에 빈 캐시가 저장되지 않도록 제외할 수 있습니다.
- 추가: DOCKET_CACHE_AUTOUPDATE_TOGGLE 상수, 워드프레스 auto_update_plugins 옵션과만 동기화합니다.
- 추가: 가비지 수집기 cron 이벤트를 비활성화하기 위한 DOCKET_CACHE_GCRON_DISABLED 상수가 추가되었습니다.
- 추가: Filesystem::suspend_cache_write() -> 새 캐시가 디스크에 저장되는 것을 일시적으로 중단합니다.
- 변경: DOCKET_CACHE_AUTOUPDATE 상수는 자동 업데이트를 강제하기 위해 수동으로만 정의할 수 있습니다.
- 개선: 시간 초과 제한이 180초 미만인 경우 제한 시간을 늘립니다.
- 개선: Constans::maybe_define() -> $GLOBAL[‘DOCKET_CACHE_RUNTIME’] 목록에 정의된 상수를 추적합니다.
- 개선: WP_Object_Cache::maybe_expire() -> 오래된 캐시와 일치하는 키/그룹의 만료일을 1일로 설정합니다.
- 개선: Event::garbage_collector() -> wc_cache 필터링 및 기타 오래된 캐시를 개선합니다.
- 개선: WP_Object_Cache::dc_code() -> stdClass만 있는 경우 데이터 유형 객체와 배열에 대해 기본 var_export를 사용합니다.
- 제거: Event::watchproc() -> 더 이상 필요하지 않습니다.
- 업데이트: DOCKET_CACHE_ADVCPOST_POSTTYPE -> 기본 게시 유형을 기본값으로 설정합니다.
- 업데이트: Filesystem::get_max_execution_time() -> 시간 제한을 설정하는 값을 허용합니다.
테스트 목적으로 스테이징 서버에 대한 액세스를 제공해준 Avunu LLC의 Kevin Shenk에게 감사드립니다.
22.07.02
- 수정: Tweaks::cache_http_response() -> 기본 TTL.
- 수정: Tweaks::wpservehappy() -> 배열 키가 누락되었습니다.
- Added: wp_cache_supports() function.
- 변경: Tweaks::cache_http_response() -> wp_cache 대신 transient를 사용합니다.
- 변경: 기본적으로 자동 업데이트를 비활성화합니다.
- 변경: 기본적으로 고급 글 캐시를 비활성화합니다.
- 최대 6.1까지 테스트됨.
22.07.01
- 수정: 플러그인:cleanuppost() -> 휴지통에 대한 잘못된 인덱스.
- 수정: MoCache() -> get_translations_for_domain에서 경고가 발생하지 않도록 $entries, $headers 속성을 추가합니다.
- 업데이트: Symfony 구성 요소 -> symfony/var-exporter.
이전 변경은 changelog.txt 를 참조하세요.
업데이트 중 오류가 발생하면 wp-content/object-cache.php와 wp-content/cache/docket-cache를 수동으로 제거해 주세요. 감사합니다.








