[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$frGIwvfrpbytoejXrXGDxfoQO-iOrhMnhqDd1iZ08NhM":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":19,"homepage":25,"download_link":26,"security_score":13,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29,"vulnerabilities":30,"developer":31,"crawl_stats":28,"alternatives":36,"analysis":134,"fingerprints":316},"sqlite-object-cache","SQLite Object Cache","1.6.1","OllieJones","https:\u002F\u002Fprofiles.wordpress.org\u002Folliejones\u002F","\u003Cp>A \u003Ca href=\"https:\u002F\u002Fdeveloper.wordpress.org\u002Freference\u002Fclasses\u002Fwp_object_cache\u002F#persistent-cache-plugins\" rel=\"nofollow ugc\">persistent object cache\u003C\u002Fa> helps your site perform well. This one uses the widely available \u003Ca href=\"https:\u002F\u002Fwww.php.net\u002Fmanual\u002Fen\u002Fbook.sqlite3.php\" rel=\"nofollow ugc\">SQLite3\u003C\u002Fa> extension, and optionally the \u003Ca href=\"https:\u002F\u002Fwww.php.net\u002Fmanual\u002Fen\u002Fintro.igbinary.php\" rel=\"nofollow ugc\">igbinary\u003C\u002Fa> and \u003Ca href=\"https:\u002F\u002Fwww.php.net\u002Fmanual\u002Fen\u002Fbook.apcu.php\" rel=\"nofollow ugc\">APCu\u003C\u002Fa> extensions to php. Many hosting services offer those extensions, and they are easy to install on a server you control.\u003C\u002Fp>\n\u003Ch4>What is this about?\u003C\u002Fh4>\n\u003Cp>It’s about making your site’s web server perform better. An object cache does that by reducing the workload on your MariaDB or MySQL database. This is not a \u003Ca href=\"https:\u002F\u002Fdeveloper.wordpress.org\u002Fadvanced-administration\u002Fperformance\u002Fcache\u002F\" rel=\"nofollow ugc\">page cache\u003C\u002Fa>; these persistent objects go into a different kind of cache. These objects aren’t chunks of web pages ready for people to view in their browsers, they are data objects for use by the WordPress software.\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FCache_(computing)\" rel=\"nofollow ugc\">Caches\u003C\u002Fa> are ubiquitous in computing, and WordPress has its own caching subsystem. Caches contain short-term copies of the results of expensive database lookups or computations, and allow software to use the copy rather than repeating the expensive operation. This plugin (like other object-caching plugins) extends WordPress’s caching subsystem to save those short-term copies from page view to page view. WordPress’s cache happens to be a \u003Ca href=\"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FCache_(computing)#Memoization\" rel=\"nofollow ugc\">memoization\u003C\u002Fa> cache.\u003C\u002Fp>\n\u003Cp>Without a persistent object cache, every WordPress page view must use your MariaDB or MySQL database server to retrieve everything about your site. When a user requests a page, WordPress starts from scratch and loads everything it needs from your database server. Only then can it deliver content to your user. With a persistent object cache, WordPress immediately loads much of the information it needs. This lightens the load on your  database server and delivers content to your users faster.\u003C\u002Fp>\n\u003Ch4>Who should use this?\u003C\u002Fh4>\n\u003Cp>If your site runs on a single web server machine, and that server provides the \u003Ca href=\"https:\u002F\u002Fwww.php.net\u002Fmanual\u002Fen\u002Fbook.sqlite3.php\" rel=\"nofollow ugc\">SQLite3\u003C\u002Fa> and \u003Ca href=\"https:\u002F\u002Fwww.php.net\u002Fmanual\u002Fen\u002Fintro.igbinary.php\" rel=\"nofollow ugc\">igbinary\u003C\u002Fa> extensions to php, this plugin will almost certainly make your site work faster. And if that server provides the \u003Ca href=\"https:\u002F\u002Fwww.php.net\u002Fmanual\u002Fen\u002Fbook.apcu.php\" rel=\"nofollow ugc\">APCu\u003C\u002Fa> extension, this plugin uses it too.\u003C\u002Fp>\n\u003Cp>Some hosting providers offer \u003Ca href=\"https:\u002F\u002Fredis.io\u002F\" rel=\"nofollow ugc\">redis\u003C\u002Fa> cache servers. If your provider offers redis, it may be a good choice. You can use it via the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fredis-cache\u002F\" rel=\"ugc\">Redis Object Cache\u003C\u002Fa> plugin. Sites using redis have one SQL database and another non-SQL storage server: redis. Other hosting providers offer \u003Ca href=\"https:\u002F\u002Fmemcached.org\u002F\" rel=\"nofollow ugc\">memcached\u003C\u002Fa>, which has the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fmemcached\u002F\" rel=\"ugc\">Memcached Object Cache\u003C\u002Fa> plugin. And some large multipurpose cache plugins, such as the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Flitespeed-cache\u002F\" rel=\"ugc\">LiteSpeed Cache\u003C\u002Fa>, also offer object caching based on one of those cache server software packages.\u003C\u002Fp>\n\u003Cp>The cache-server approach to object caching comes into its own when you have multiple load-balanced web server machines handling your site. SQLite doesn’t work correctly in a multiple-web-server environment.\u003C\u002Fp>\n\u003Cp>But, for single-server site configurations, SQLite, possibly assisted by APCu, performs well. And the vast majority of sites are single-server.\u003C\u002Fp>\n\u003Ch4>APCu\u003C\u002Fh4>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.php.net\u002Fmanual\u002Fen\u002Fbook.apcu.php\" rel=\"nofollow ugc\">APCu\u003C\u002Fa> is an in-memory storage medium. It lets php programs, like WordPress, store data in shared memory so it’s very fast to retrieve when needed. If APCu is available on your host server, you can configure this plugin to use it. It reduces the typical cache lookup time to one-fifth or less of the SQLite lookup time, which is itself a few tens of microseconds. Performance counts, especially on busy web sites.\u003C\u002Fp>\n\u003Cp>Please look at \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fsqlite-object-cache\u002F#installation\" rel=\"ugc\">Installation\u003C\u002Fa> to learn how to configure this plugin to use APCu. The plugin works fast without it, and faster with it.\u003C\u002Fp>\n\u003Cp>WP-CLI: Even if APCu is in use, caching with SQLite is necessary when your web site uses WP-CLI, because WP-CLI programs do not have access to the APCu cache. This plugin writes all cached data both to APCu and to SQLite and makes sure the two are synchronized.\u003C\u002Fp>\n\u003Ch4>WP-CLI\u003C\u002Fh4>\n\u003Cp>You can control this plugin via WP-CLI once you activate it. Please type this command into your shell for details.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>wp help sqlite-object-cache\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Credits\u003C\u002Fh4>\n\u003Cp>Thanks to \u003Ca href=\"https:\u002F\u002Fprofiles.wordpress.org\u002Ftillkruess\u002F\" rel=\"nofollow ugc\">Till Krüss\u003C\u002Fa>. His \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fredis-cache\u002F\" rel=\"ugc\">Redis Object Cache\u003C\u002Fa> plugin serves as a model for this one. And thanks to \u003Ca href=\"https:\u002F\u002Fprofiles.wordpress.org\u002Faristath\u002F\" rel=\"nofollow ugc\">Ari Stathopoulos\u003C\u002Fa> and \u003Ca href=\"https:\u002F\u002Fprofiles.wordpress.org\u002Fspacedmonkey\u002F\" rel=\"nofollow ugc\">Jonny Harris\u003C\u002Fa> for reviewing this. Props to Matt Jones for finding and fixing a bug that appeared on a heavily loaded system. Thanks to \u003Ca href=\"https:\u002F\u002Fspeedable.net\u002Fabout-us\u002F\" rel=\"nofollow ugc\">Massimo Villa\u003C\u002Fa> for testing help, and to \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnickchomey\" rel=\"nofollow ugc\">nickchomey\u003C\u002Fa> for a comprehensive code review. All defects are, of course, entirely the author’s responsibility.\u003C\u002Fp>\n\u003Cp>And thanks to Jetbrains for the use of their software development tools, especially \u003Ca href=\"https:\u002F\u002Fwww.jetbrains.com\u002Fphpstorm\u002F\" rel=\"nofollow ugc\">PhpStorm\u003C\u002Fa>. It’s hard to imagine how a plugin like this one could be developed without PhpStorm’s tools for exploring epic code bases like WordPress’s.\u003C\u002Fp>\n\u003Ch4>How can I learn more about making my WordPress site more efficient?\u003C\u002Fh4>\n\u003Cp>We offer several plugins to help with your site’s database efficiency. You can \u003Ca href=\"https:\u002F\u002Fwww.plumislandmedia.net\u002Fwordpress\u002Fperformance\u002Foptimizing-wordpress-database-servers\u002F\" rel=\"nofollow ugc\">read about them here\u003C\u002Fa>.\u003C\u002Fp>\n","A fast persistent object cache backend for the rest of us, powered by SQLite and accelerated by APCu",9000,100740,100,49,"2026-01-26T18:26:00.000Z","6.9.4","5.5","5.6",[20,21,22,23,24],"apcu","cache","object-cache","performance","sqlite","https:\u002F\u002Fgithub.com\u002FOllieJones\u002Fsqlite-object-cache","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsqlite-object-cache.1.6.1.zip",0,null,"2026-03-15T15:16:48.613Z",[],{"slug":32,"display_name":7,"profile_url":8,"plugin_count":33,"total_installs":34,"avg_security_score":13,"avg_patch_time_days":33,"trust_score":13,"computed_at":35},"olliejones",6,60420,"2026-04-03T23:15:08.552Z",[37,57,72,92,112],{"slug":38,"name":39,"version":40,"author":41,"author_profile":42,"description":43,"short_description":44,"active_installs":45,"downloaded":46,"rating":47,"num_ratings":48,"last_updated":49,"tested_up_to":16,"requires_at_least":50,"requires_php":51,"tags":52,"homepage":55,"download_link":56,"security_score":13,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"atec-cache-apcu","atec Cache APCu","2.3.68","docjojo","https:\u002F\u002Fprofiles.wordpress.org\u002Fdocjojo\u002F","\u003Cp>atec Cache APCu provides a drop-in object-cache and optional page cache, built entirely on APCu.\u003C\u002Fp>\n\u003Cp>It replaces WordPress’s core cache with a fast, persistent alternative — offering major performance gains, especially on single-server setups.\u003C\u002Fp>\n\u003Cp>APCu is faster than Redis and Memcached in low-latency scenarios. This plugin uses advanced logic that improves object cache efficiency by up to 16.67%.\u003C\u002Fp>\n\u003Cp>The optional page cache is the only APCu-powered full-page cache for WordPress, and includes cache exclusion rules, cache flushing and profiler\u002Fdebugging options.\u003C\u002Fp>\n\u003Ch3>Specifications\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Includes object cache drop-in and optional full page cache  \u003C\u002Fli>\n\u003Cli>Profiler and debug options for diagnostics\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Requirements\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>APCu extension enabled\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Third-Party Services\u003C\u002Fh3>\n\u003Ch3>Integrity check\u003C\u002Fh3>\n\u003Cp>Once, when activating the plugin, an integrity check is requested from our server – if you give your permission.\u003Cbr \u002F>\nSource: https:\u002F\u002Fatecplugins.com\u002F\u003Cbr \u002F>\nPrivacy policy: https:\u002F\u002Fatecplugins.com\u002Fprivacy-policy\u002F\u003C\u002Fp>\n\u003Ch3>‘PRO’ Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\n\u003Cp>AOC Mode (Advanced Object Cache)\u003Cbr \u002F>\nAdvanced Object Cache Mode – takes full advantage of APCu’s in-memory array support, eliminating unnecessary serialize()\u002Funserialize() cycles and boosting PHP performance on every request.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>APC Mode (Advanced Page Cache)\u003Cbr \u002F>\nAdvanced Page Cache is a ‘PRO’-level optimization that activates earlier than regular page cache — before most WordPress logic even runs.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n","Super fast APCu-based Object Cache and the only APCu-powered Page Cache plugin for WordPress.",1000,84890,98,19,"2026-01-08T13:01:00.000Z","4.9","7.4",[20,22,53,23,54],"page-cache","persistent-cache","https:\u002F\u002Fatecplugins.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fatec-cache-apcu.2.3.68.zip",{"slug":58,"name":59,"version":60,"author":61,"author_profile":62,"description":63,"short_description":64,"active_installs":13,"downloaded":65,"rating":27,"num_ratings":27,"last_updated":66,"tested_up_to":16,"requires_at_least":18,"requires_php":67,"tags":68,"homepage":70,"download_link":71,"security_score":13,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"apcu-object-cache","Object Cache for APCu – ZapCu","1.0.0","wpdebuglog","https:\u002F\u002Fprofiles.wordpress.org\u002Fwpdebuglog\u002F","\u003Cp>\u003Cstrong>Object Cache for APCu\u003C\u002Fstrong> enables persistent object caching in WordPress using the APCu extension. It helps reduce database queries by caching objects in memory, speeding up page loads and backend performance.\u003Cbr \u002F>\n\u003Cstrong>Requires: \u003Ca href=\"https:\u002F\u002Fwww.php.net\u002Fmanual\u002Fen\u002Fbook.apcu.php\" rel=\"nofollow ugc\">APCu extension\u003C\u002Fa>\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>\u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> \u003Ca href=\"https:\u002F\u002Fwww.fastcomet.com\u002Fkb\u002Fenable-apcu-caching\" rel=\"nofollow ugc\">How to Enable APCu Caching (cPanel)\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>⚠️ Make sure APCu is enabled on your server before activating this plugin.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Features:\u003C\u002Fstrong>\u003Cbr \u002F>\n* Uses APCu for WordPress object caching.\u003Cbr \u002F>\n* Dashboard with real-time APCu stats (hits, misses, memory, inserts, etc.).\u003Cbr \u002F>\n* Clear\u002Freset cache with one click (protected by nonce).\u003Cbr \u002F>\n* Automatically installs \u003Ccode>object-cache.php\u003C\u002Fcode> in wp-content.\u003Cbr \u002F>\n* Clean, professional admin interface.\u003C\u002Fp>\n","Lightweight object caching plugin using PHP's APCu extension for fast in-memory caching and performance boost.",1320,"2026-01-30T03:50:00.000Z","7.2",[20,21,22,69,23],"optimization","https:\u002F\u002Fwpdebuglog.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fapcu-object-cache.1.0.0.zip",{"slug":73,"name":74,"version":75,"author":76,"author_profile":77,"description":78,"short_description":79,"active_installs":80,"downloaded":81,"rating":13,"num_ratings":82,"last_updated":83,"tested_up_to":84,"requires_at_least":85,"requires_php":86,"tags":87,"homepage":90,"download_link":91,"security_score":13,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"eacobjectcache","{eac}ObjectCache – a persistent object cache using SQLite & APCu to cache WordPress objects.","2.1.2","Kevin Burkholder","https:\u002F\u002Fprofiles.wordpress.org\u002Fkevinburkholder\u002F","\u003Cp>The \u003Cem>{eac}ObjectCache\u003C\u002Fem> is a light-weight and very efficient drop-in persistent object cache that uses a fast SQLite database and even faster APCu shared memory to cache WordPress objects.\u003C\u002Fp>\n\u003Cp>See \u003Ca href=\"https:\u002F\u002Fdeveloper.wordpress.org\u002Freference\u002Fclasses\u002Fwp_object_cache\u002F\" rel=\"nofollow ugc\">The WordPress Object Cache\u003C\u002Fa>\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>The WordPress Object Cache is used to save on trips to the database. The Object Cache stores all of the cache data to memory and makes the cache contents available by using a key, which is used to name and later retrieve the cache contents.\u003C\u002Fp>\n\u003Cp>By default, the object cache is non-persistent. This means that data stored in the cache resides in memory only and only for the duration of the request. Cached data will not be stored persistently across page loads unless you install a persistent caching plugin.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>Here, an object is any piece of data – a number, text, a set of database records, an API response, etc. – that can be referenced by a name or key. Objects are categorized by a group name. Groups help identify what an object is and how it is used.\u003C\u002Fp>\n\u003Cp>{eac}ObjectCache replaces the default WordPress object cache to not only store data in process memory but to also store data persistently, across requests, in APCu shared memory and\u002For in a SQLite database, increasing the likelihood of cache hits and decreasing the need for costly computations, complex MySQL database queries, and remote API requests.\u003C\u002Fp>\n\u003Cp>SQLite is a fast, small, single-file relational database engine. By using SQLite to store objects, {eac}ObjectCache is able to manage a relatively large amount of data (groups, keys, and values) in a very efficient and fast data-store.\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.php.net\u002Fmanual\u002Fen\u002Fbook.apcu.php\" rel=\"nofollow ugc\">APCu\u003C\u002Fa> is a shared, in-memory, persistent cache available only when the \u003Ca href=\"https:\u002F\u002Fwww.php.net\u002Fmanual\u002Fen\u002Fapcu.setup.php\" rel=\"nofollow ugc\">APCu PECL Extension\u003C\u002Fa> is installed. {eac}ObjectCache uses APCu as an intermediate cache between the L1 memory cache and the L2 SQLite database cache providing extremely fast object retrieval,\u003C\u002Fp>\n\u003Cp>{eac}ObjectCache always uses per-request, in-memory caching and may operate with either APCu memory caching or SQLite database caching – or both. APCu memory caching uses a single block of memory shared by all PHP requests and is persistent until and unless the cache is cleared or the server is rebooted (or PHP restarted). SQLite database caching is persistent until and unless the cache is deliberately cleared.\u003C\u002Fp>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Lightweight, efficient, and fast!\u003C\u002Fli>\n\u003Cli>L1 (in-process memory) \u003Cem>and\u003C\u002Fem> L2 (APCu & SQLite) caching.\u003C\u002Fli>\n\u003Cli>Supports Write-Back (delayed transactions) or Write-Through SQL caching.\u003C\u002Fli>\n\u003Cli>Caching by object group name.\n\u003Cul>\n\u003Cli>Preserves uniqueness of keys.\u003C\u002Fli>\n\u003Cli>Manage keys by group name.\u003C\u002Fli>\n\u003Cli>Supports group name attributes (:sitewide, :nocaching, :permanent, :prefetch)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Pre-fetch object groups from L2 to L1 cache.\u003C\u002Fli>\n\u003Cli>Caches and pre-fetches L2 misses (known to not exist in L2 cache).\n\u003Cul>\n\u003Cli>Prevents repeated, unnecessary L2 cache reads across requests.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Multisite \u002F Network support:\n\u003Cul>\n\u003Cli>Cache\u002Fflush\u002Fswitch by blog id.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Caching statistics:\n\u003Cul>\n\u003Cli>Cache hits (typically above 90%).\u003C\u002Fli>\n\u003Cli>Overall and L1\u002FL2 hits, misses, & ratio.\u003C\u002Fli>\n\u003Cli>Cache hits by object groups.\u003C\u002Fli>\n\u003Cli>Number of APCu and SQLite keys stored.\u003C\u002Fli>\n\u003Cli>SQLite select\u002Fupdate\u002Fdelete\u002Fcommit counts.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Supports an enhanced superset of WP Object Cache functions.\u003C\u002Fli>\n\u003Cli>Easily enabled or disabled from {eac}Doojigger administrator page.\n\u003Cul>\n\u003Cli>Imports existing MySQL transients.\u003C\u002Fli>\n\u003Cli>Exports cached transients to MySQL when disabled.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Automatically cleans and optimizes SQLite database.\u003C\u002Fli>\n\u003Cli>Optionally schedule periodic cache invalidation and rebuild.\u003C\u002Fli>\n\u003Cli>Uses the PHP Data Objects (PDO) extension included with PHP.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cem>While {eac}ObjectCache does support multiple WordPress installations on a single server it does not support multiple servers per installation. SQLite and APCu work only on a single server, not in a clustered or load-balanced environment.\u003C\u002Fem>\u003C\u002Fp>\n\u003Ch4>Configuration Alternatives\u003C\u002Fh4>\n\u003Cp>Assuming you have SQLite and APCu installed, what are your best options?\u003C\u002Fp>\n\u003Col>\n\u003Cli>\n\u003Cp>Fastest Caching – \u003Cem>Uses in-process memory and APCu shared memory.\u003C\u002Fem>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Disable SQLite. *\n\u003Cul>\n\u003Cli>\u003Ccode>define( 'EAC_OBJECT_CACHE_USE_DB', false );\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Advantage\n\u003Cul>\n\u003Cli>Fast memory-only access.\u003C\u002Fli>\n\u003Cli>Handles concurrent updates through APCu cache.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Disadvantage\n\u003Cul>\n\u003Cli>APCu may invalidate data under memory constraint.\u003C\u002Fli>\n\u003Cli>APCu cache is not shared with CLI.\u003C\u002Fli>\n\u003Cli>APCu cache is lost on system or PHP restart.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Less memory (almost as fast) – \u003Cem>Uses in-process memory and APCu shared memory.\u003C\u002Fem>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Disable SQLite. *\n\u003Cul>\n\u003Cli>\u003Ccode>define( 'EAC_OBJECT_CACHE_USE_DB', false );\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Optimize memory use. *\n\u003Cul>\n\u003Cli>\u003Ccode>define( 'EAC_OBJECT_CACHE_OPTIMIZE_MEMORY', true );\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Advantage\n\u003Cul>\n\u003Cli>Fast memory-only access.\u003C\u002Fli>\n\u003Cli>Handles concurrent updates through APCu cache.\u003C\u002Fli>\n\u003Cli>Conserves per-request memory by not pushing APCu hits to in-process memory.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Disadvantage\n\u003Cul>\n\u003Cli>Slightly slower to access APCu memory over in-process memory.\u003C\u002Fli>\n\u003Cli>APCu may invalidate data under memory constraint.\u003C\u002Fli>\n\u003Cli>APCu cache is not shared with CLI.\u003C\u002Fli>\n\u003Cli>APCu cache is lost on system or PHP restart.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Most resilient (and still fast) – \u003Cem>Uses in-process memory, APCu shared memory, and SQLite database.\u003C\u002Fem>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Do nothing, this is the default.\u003C\u002Fli>\n\u003Cli>Advantage\n\u003Cul>\n\u003Cli>Most cache hits will come from in-process and APCu memory.\u003C\u002Fli>\n\u003Cli>SQLite retains cache data after restart.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Disadvantage\n\u003Cul>\n\u003Cli>Must keep SQLite database (on disk) updated.\u003C\u002Fli>\n\u003Cli>Potential concurrency issues on high-volume site.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Resilient, efficient, and fast (recommended) – \u003Cem>Uses in-process memory, APCu shared memory, and SQLite database.\u003C\u002Fem>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Optimize memory use. *\n\u003Cul>\n\u003Cli>\u003Ccode>define( 'EAC_OBJECT_CACHE_OPTIMIZE_MEMORY', true );\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Advantage\n\u003Cul>\n\u003Cli>Most cache hits will come from in-process and APCu memory.\u003C\u002Fli>\n\u003Cli>Handles concurrent updates better through APCu cache.\u003C\u002Fli>\n\u003Cli>Conserves per-request memory by not pushing APCu hits to in-process memory.\u003C\u002Fli>\n\u003Cli>SQLite retains cache data after restart.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Disadvantage\n\u003Cul>\n\u003Cli>Slightly slower to access APCu memory over in-process memory.\u003C\u002Fli>\n\u003Cli>Must keep SQLite database (on disk) updated.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Least efficient (default when APCu is not installed) – \u003Cem>Uses in-process memory and SQLite database.\u003C\u002Fem>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Disable APCu. *\n\u003Cul>\n\u003Cli>\u003Ccode>define( 'EAC_OBJECT_CACHE_USE_APCU', false );\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Advantage\n\u003Cul>\n\u003Cli>Saves resources by not taking up APCu reserves.\u003C\u002Fli>\n\u003Cli>More secure by not using shared memory.\u003C\u002Fli>\n\u003Cli>SQLite retains cache data after restart.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Disadvantage\n\u003Cul>\n\u003Cli>All cached data initially read from disk.\u003C\u002Fli>\n\u003Cli>Must keep SQLite database (on disk) updated.\u003C\u002Fli>\n\u003Cli>Potential concurrency issues on high-volume site.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>For high-volume sites – \u003Cem>reduces or eliminates potential race conditions\u003C\u002Fem>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Optimize memory use. *\n\u003Cul>\n\u003Cli>\u003Ccode>define( 'EAC_OBJECT_CACHE_OPTIMIZE_MEMORY', true );\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Disable delayed writes. *\n\u003Cul>\n\u003Cli>\u003Ccode>define( 'EAC_OBJECT_CACHE_DELAYED_WRITES', false );\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Disable use of \u003Ccode>alloptions\u003C\u002Fcode> array.\n\u003Cul>\n\u003Cli>\u003Ccode>define( 'EAC_OBJECT_CACHE_DISABLE_ALLOPTIONS', true );\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Advantage\n\u003Cul>\n\u003Cli>Most cache hits will come from in-process and APCu memory.\u003C\u002Fli>\n\u003Cli>Conserves per-request memory by not pushing APCu hits to in-process memory.\u003C\u002Fli>\n\u003Cli>Updates SQLite data immediately.\u003C\u002Fli>\n\u003Cli>Conserves per-request memory by elimination large \u003Ccode>alloptions\u003C\u002Fcode> array(s).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Disadvantage\n\u003Cul>\n\u003Cli>Slightly slower to access APCu memory over in-process memory.\u003C\u002Fli>\n\u003Cli>Multiple single-row SQLite update transactions.\u003C\u002Fli>\n\u003Cli>Slightly slower to access individual options from cache rather than \u003Ccode>alloptions\u003C\u002Fcode> array.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>* These options may be set from the {eac}Doojigger administration screen.\u003C\u002Fp>\n\u003Cp>\u003Cem>When using SQLite, \u003Ccode>delayed writes\u003C\u002Fcode> (see below) dramatically improves efficiency by only writing updates at the end of the script process.\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>\u003Cem>When using APCu shared memory, data is accessable by other PHP processes that may run on the server.\u003C\u002Fem>\u003C\u002Fp>\n\u003Ch4>Inside The Numbers\u003C\u002Fh4>\n\u003C\u002Fp>\n\u003Cp>  Label        \u003Cbr \u002F>\n  Value\u003C\u002Fp>\n\u003Cp>  cache hits\u003Cbr \u002F>\n  The total number of requests that returned a cached value.\u003C\u002Fp>\n\u003Cp>  cache misses\u003Cbr \u002F>\n  The total number of requests that did not return a cached value. This number includes \u003Cem>L1 cache (-)\u003C\u002Fem>, \u003Cem>L2 non-persistent\u003C\u002Fem>, \u003Cem>L2 APCu (-)\u003C\u002Fem>, and \u003Cem>L2 SQL misses\u003C\u002Fem>.\u003C\u002Fp>\n\u003Cp>  L1 cache hits\u003Cbr \u002F>\n  The number of requests that were found in the L1 memory cache.\u003C\u002Fp>\n\u003Cp>  L1 cache (+)\u003Cbr \u002F>\n  Request found in the L1 memory cache with data (positive hits).\u003C\u002Fp>\n\u003Cp>  L1 cache (-)\u003Cbr \u002F>\n  Request found in the L1 memory cache with no data (negative hits).\u003C\u002Fp>\n\u003Cp>  L1 cache misses\u003Cbr \u002F>\n  The number of requests not found in the L1 memory cache.\u003C\u002Fp>\n\u003Cp>  L2 non-persistent\u003Cbr \u002F>\n  L1 cache misses in a non-persistent group (not in L2 cache).\u003C\u002Fp>\n\u003Cp>  L2 APCu hits\u003Cbr \u002F>\n  The number of L1 cache misses (minus L2 non-persistent) that were found in the L2 APCu cache.\u003C\u002Fp>\n\u003Cp>  L2 APCu (+)\u003Cbr \u002F>\n  Request found in the L2 APCu cache with data (positive hits).\u003C\u002Fp>\n\u003Cp>  L2 APCu (-)\u003Cbr \u002F>\n  Request found in the L2 APCu cache with no data (negative hits).\u003C\u002Fp>\n\u003Cp>  L2 APCu misses\u003Cbr \u002F>\n  The number of requests not found in the L2 APCu cache.\u003C\u002Fp>\n\u003Cp>  L2 SQL hits\u003Cbr \u002F>\n  The number of L2 APCu misses (or L1 cache misses) that were found in the L2 SQLite cache.\u003C\u002Fp>\n\u003Cp>  L2 SQL misses\u003Cbr \u002F>\n  The number of requests not found in the L2 SQLite cache.\u003C\u002Fp>\n\u003Cp>  L2 APCu updates\u003Cbr \u002F>\n  The number of APCu keys updated.\u003C\u002Fp>\n\u003Cp>  L2 APCu deletes\u003Cbr \u002F>\n  The number of APCu keys deleted.\u003C\u002Fp>\n\u003Cp>  L2 SQL selects\u003Cbr \u002F>\n  The number of SQLite select statements executed.\u003C\u002Fp>\n\u003Cp>  L2 SQL updates\u003Cbr \u002F>\n  The number of SQLite records updated.\u003C\u002Fp>\n\u003Cp>  L2 SQL deletes\u003Cbr \u002F>\n  The number of SQLite records deleted.\u003C\u002Fp>\n\u003Cp>  L2 SQL commits\u003Cbr \u002F>\n  The number of SQLite transactions executed to update and delete records.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>When a request results in a \u003Cem>L2 SQL miss\u003C\u002Fem>, the key is added to the L1 memory or L2 APCu cache as a miss so that additional requests for the same key do not result in additional SQL selects. This is known as a \u003Cem>negative hit\u003C\u002Fem> and still counted as a \u003Cem>cache miss\u003C\u002Fem> making the \u003Cem>cache hit ratio\u003C\u002Fem> (93.10%) understated.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Object cache statistics may be found:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>In the \u003Cem>WP Object Cache\u003C\u002Fem> dashboard panel.\n\u003Cul>\n\u003Cli>Uses \u003Ccode>$wp_object_cache->showDashboardStats()\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>In the \u003Cem>Debug Bar > Object Cache\u003C\u002Fem> panel.\n\u003Cul>\n\u003Cli>Uses \u003Ccode>$wp_object_cache->stats()\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>In the \u003Cem>Query Monitor > Logs > Info\u003C\u002Fem> panel.\n\u003Cul>\n\u003Cli>Uses \u003Ccode>$wp_object_cache->getCurrentStats()\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>In a \u003Cem>wp_admin_notice\u003C\u002Fem> block when \u003Cem>display_stats\u003C\u002Fem> is set for sampling.\n\u003Cul>\n\u003Cli>Uses \u003Ccode>$wp_object_cache->htmlStats()\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Settings\u003C\u002Fh3>\n\u003Cp>Several cache settings can be modified by adding defined constants to the \u003Ccode>wp-config.php\u003C\u002Fcode> file. The default settings are recommended and optimal in most cases but individual settings may need to be adjusted based on traffic volume, specific requirements, or unique circumstances. \u003Cem>Most of these settings can be adjusted in the {eac}Doojigger administrator screen.\u003C\u002Fem>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>To disable use of the SQLite Database                       (default: true):\u003C\u002Fp>\n\u003Cp>\u003Ccode>define( 'EAC_OBJECT_CACHE_USE_DB', false );\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>{eac}ObjectCache will still operate as an in-memory cache without the persistent database. If using APCu memory caching, persistence is maintained as long as the cache is not flushed, manually or by restarting PHP.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>To disable use of the APCu memory cache                     (default: true if APCu is enabled):\u003C\u002Fp>\n\u003Cp>\u003Ccode>define( 'EAC_OBJECT_CACHE_USE_APCU', false );\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>APCu memory caching is used, by default, only if the \u003Ca href=\"https:\u002F\u002Fwww.php.net\u002Fmanual\u002Fen\u002Fapcu.installation.php\" rel=\"nofollow ugc\">APCu PECL extension\u003C\u002Fa> is installed.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>To optimize memory use when using APCu                      (default: false):\u003C\u002Fp>\n\u003Cp>\u003Ccode>define( 'EAC_OBJECT_CACHE_OPTIMIZE_MEMORY', true );\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>When using APCu memory caching, optimize internal memory by not storing APCu data in the L1 memory cache. This may slightly (negligibly) increase processing time as cache hits will come through APCu but will reduce the per-process memory usage. This may also be advantageous on high-volume sites where a single object may be updated by simultaneous processes.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>To disable use of the \u003Ccode>alloptions\u003C\u002Fcode> array in WordPress       (default: false):\u003C\u002Fp>\n\u003Cp>\u003Ccode>define( 'EAC_OBJECT_CACHE_DISABLE_ALLOPTIONS', true );\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>By default, WordPress pre-fetches many of the option values from the wp-options table on startup. This facilitates faster access to oft-used options. However, this also creates 1) a potential race condition on high-volume sites, and 2) a sometimes very large array of data in memory that may also be duplicated in the L1 and L2 caches. Disabling this forces WordPress to get individual options from the cache rather than from the array, eliminates the race condition, eliminates the large array(s), and reduces much of the logic used to maintain the array(s). This may be particularly advantageous when using APCu since the option values should already be in shared memory.\u003C\u002Fp>\n\u003Cp>* \u003Cem>Once enabled, the caches should be cleared to eliminate previously cached \u003Ccode>alloptions\u003C\u002Fcode> arrays.\u003C\u002Fem>\u003Cbr \u002F>\n* \u003Cem>Uses filters \u003Ccode>pre_wp_load_alloptions\u003C\u002Fcode> (introduced in WP 6.2.0) and \u003Ccode>wp_autoload_values_to_autoload\u003C\u002Fcode> (introduced in WP 6.6.0).\u003C\u002Fem>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>To set the location of the SQLite database                  (default: ..\u002Fwp-content\u002Fcache):\u003C\u002Fp>\n\u003Cp>\u003Ccode>define( 'EAC_OBJECT_CACHE_DIR', '\u002Ffull\u002Fpath\u002Fto\u002Ffolder' );\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>This folder can be outside of the web-accessable folders of your site – i.e. above the document root (htdocs, www, etc.) – provided that PHP can access (read\u002Fwrite) the folder (see the PHP \u003Cem>open_basedir\u003C\u002Fem> directive).\u003C\u002Fp>\n\u003Cp>This folder should not be on a network share or other remote media. We’re caching data for quick access, the cache folder should be on fast, local media.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>To set the name of the SQLite database                      (default: ‘.eac_object_cache.sqlite’):\u003C\u002Fp>\n\u003Cp>\u003Ccode>define( 'EAC_OBJECT_CACHE_FILE', 'filename.sqlite' );\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>In addition to the database file, SQLite may also create temporary files using the same file name with a ‘-shm’ and ‘-wal’ suffix.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>To set SQLite journal mode                                  (default: ‘WAL’):\u003C\u002Fp>\n\u003Cp>\u003Ccode>define( 'EAC_OBJECT_CACHE_JOURNAL_MODE', journal_mode )\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cem>journal_mode\u003C\u002Fem> can be one of ‘DELETE’, ‘TRUNCATE’, ‘PERSIST’, ‘MEMORY’, ‘WAL’, or ‘OFF’.\u003Cbr \u002F>\nSee \u003Ca href=\"https:\u002F\u002Fwww.sqlite.org\u002Fpragma.html#pragma_journal_mode\" rel=\"nofollow ugc\">SQLite journal mode\u003C\u002Fa>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>To set SQLite Mapped Memory I\u002FO                             (default: 0):\u003C\u002Fp>\n\u003Cp>\u003Ccode>define( 'EAC_OBJECT_CACHE_MMAP_SIZE', int );\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Sets the maximum number of bytes that are set aside for memory-mapped I\u002FO.\u003Cbr \u002F>\nSee \u003Ca href=\"https:\u002F\u002Fwww.sqlite.org\u002Fpragma.html#pragma_mmap_size\" rel=\"nofollow ugc\">SQLite memory-mapped I\u002FO\u003C\u002Fa>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>To set SQLite Page Size                                     (default: 4096):\u003C\u002Fp>\n\u003Cp>\u003Ccode>define( 'EAC_OBJECT_CACHE_PAGE_SIZE', int );\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Sets the SQLite page size for the database.\u003Cbr \u002F>\nSee \u003Ca href=\"https:\u002F\u002Fwww.sqlite.org\u002Fpragma.html#pragma_page_size\" rel=\"nofollow ugc\">SQLite page size\u003C\u002Fa>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>To set SQLite Cache Size                                    (default: -2000 [2,048,000]):\u003C\u002Fp>\n\u003Cp>\u003Ccode>define( 'EAC_OBJECT_CACHE_CACHE_SIZE', int );\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Sets the maximum number of database disk pages that SQLite will hold in memory or the maximum amount of memory to use for page caching.\u003Cbr \u002F>\nSee \u003Ca href=\"https:\u002F\u002Fwww.sqlite.org\u002Fpragma.html#pragma_cache_size\" rel=\"nofollow ugc\">SQLite cache size\u003C\u002Fa>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>To set SQLite timeout                                       (default: 3):\u003C\u002Fp>\n\u003Cp>\u003Ccode>define( 'EAC_OBJECT_CACHE_TIMEOUT', int );\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Sets the number of seconds before a SQLite transaction may timeout in error.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>To set SQLite retries                                       (default: 3):\u003C\u002Fp>\n\u003Cp>\u003Ccode>define( 'EAC_OBJECT_CACHE_MAX_RETRIES', int );\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Sets the maximum number of retries to attempt on critical actions.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>To set delayed writes                                       (default: 32):\u003C\u002Fp>\n\u003Cp>\u003Ccode>define( 'EAC_OBJECT_CACHE_DELAYED_WRITES', true|false|int );\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>{eac}ObjectCache caches all objects in memory and writes new, updated, or deleted objects to the L2 (SQLite) cache. \u003Cem>delayed writes\u003C\u002Fem> simply holds objects in memory until the number of objects reaches a specified threshold, then writes them, in a single transaction, to the L2 cache (a.k.a. write-back caching). Setting \u003Cem>delayed writes\u003C\u002Fem> to false turns this functionality off (a.k.a. write-through caching). Setting to true writes all records only at the end of the script process\u002Fpage request. Setting this to a number sets the object pending threshold to that number of objects.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>To set the default expiration time (in seconds)             (default: 0 [never]):\u003C\u002Fp>\n\u003Cp>\u003Ccode>define( 'EAC_OBJECT_CACHE_DEFAULT_EXPIRE', -1|0|int );\u003C\u002Fcode>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>When using the default WordPress object cache, object expiration isn’t very important because the entire cache expires at the end of the script process\u002Fpage request. With a persistent cache, this isn’t the case. When an object is cached, the developer has the option of specifying an expiration time for that object. Since we don’t know  &hellip;\u003C\u002Fp>\n","{eac}ObjectCache is a persistent object cache using APCu & SQLite to cache WordPress objects; A drop-in replacement to the WP Object Cache used by &hellip;",10,2383,2,"2025-10-25T13:38:00.000Z","6.8.5","5.8","8.1",[20,22,88,24,89],"persistent-object-cache","wp-cache","https:\u002F\u002Feacdoojigger.earthasylum.com\u002Feacobjectcache\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Feacobjectcache.2.1.2.zip",{"slug":93,"name":94,"version":95,"author":96,"author_profile":97,"description":98,"short_description":99,"active_installs":100,"downloaded":101,"rating":102,"num_ratings":103,"last_updated":104,"tested_up_to":16,"requires_at_least":105,"requires_php":67,"tags":106,"homepage":110,"download_link":111,"security_score":13,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"redis-cache","Redis Object Cache","2.7.0","Till Krüss","https:\u002F\u002Fprofiles.wordpress.org\u002Ftillkruess\u002F","\u003Cp>A persistent object cache backend powered by Redis®¹. Supports \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fpredis\u002Fpredis\u002F\" rel=\"nofollow ugc\">Predis\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fphpredis\u002Fphpredis\" rel=\"nofollow ugc\">PhpRedis (PECL)\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Frelaycache.com\" rel=\"nofollow ugc\">Relay\u003C\u002Fa>, replication, sentinels, clustering and \u003Ca href=\"https:\u002F\u002Fwp-cli.org\u002F\" rel=\"nofollow ugc\">WP-CLI\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>To adjust the connection parameters, prefix cache keys or configure replication\u002Fclustering, see the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frhubarbgroup\u002Fredis-cache\u002F#configuration\" rel=\"nofollow ugc\">configuration options\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch4>Object Cache Pro\u003C\u002Fh4>\n\u003Cp>A \u003Cstrong>business class\u003C\u002Fstrong> Redis®¹ object cache backend. Truly reliable, highly optimized, fully customizable and with a dedicated engineer when you most need it.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Rewritten for raw performance\u003C\u002Fli>\n\u003Cli>100% WordPress API compliant\u003C\u002Fli>\n\u003Cli>Faster serialization and compression\u003C\u002Fli>\n\u003Cli>Easy debugging & logging\u003C\u002Fli>\n\u003Cli>Cache prefetching and analytics\u003C\u002Fli>\n\u003Cli>Fully unit tested (100% code coverage)\u003C\u002Fli>\n\u003Cli>Secure connections with TLS\u003C\u002Fli>\n\u003Cli>Health checks via WordPress & WP CLI\u003C\u002Fli>\n\u003Cli>Optimized for WooCommerce, Jetpack & Yoast SEO\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Learn more about \u003Ca href=\"https:\u002F\u002Fobjectcache.pro\u002F?ref=oss&utm_source=wp-plugin&utm_medium=readme\" rel=\"nofollow ugc\">Object Cache Pro\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>¹ Redis is a registered trademark of Redis Ltd. Any rights therein are reserved to Redis Ltd. Any use by Redis Object Cache is for referential purposes only and does not indicate any sponsorship, endorsement or affiliation between Redis and Redis Object Cache.\u003C\u002Fp>\n\u003Ch3>Troubleshooting\u003C\u002Fh3>\n\u003Cp>Answers to common questions and troubleshooting of common errors can be found in the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frhubarbgroup\u002Fredis-cache\u002Fblob\u002Fdevelop\u002FFAQ.md\" rel=\"nofollow ugc\">FAQ\u003C\u002Fa>. Reading these is always faster than waiting for a response in the support forums.\u003C\u002Fp>\n\u003Ch3>Configuration\u003C\u002Fh3>\n\u003Cp>The plugin comes with vast set of \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frhubarbgroup\u002Fredis-cache\u002F#configuration\" rel=\"nofollow ugc\">configuration options\u003C\u002Fa> and \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frhubarbgroup\u002Fredis-cache\u002F#connections\" rel=\"nofollow ugc\">connection examples\u003C\u002Fa>. Advanced users may consult \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frhubarbgroup\u002Fredis-cache\u002Fblob\u002Fdevelop\u002FREADME.md#scaling\" rel=\"nofollow ugc\">Scaling and replication\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>WP CLI commands\u003C\u002Fh3>\n\u003Cp>Redis Object Cache has various WP CLI commands, for more information run \u003Ccode>wp help redis\u003C\u002Fcode> after installing the plugin.\u003C\u002Fp>\n","A persistent object cache backend powered by Redis®¹. Supports Predis, PhpRedis, Relay, replication, sentinels, clustering and WP-CLI.",300000,15949526,88,172,"2026-01-29T16:40:00.000Z","4.6",[107,22,23,108,109],"caching","redis","relay","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fredis-cache\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fredis-cache.2.7.0.zip",{"slug":113,"name":114,"version":115,"author":116,"author_profile":117,"description":118,"short_description":119,"active_installs":120,"downloaded":121,"rating":47,"num_ratings":122,"last_updated":123,"tested_up_to":16,"requires_at_least":124,"requires_php":125,"tags":126,"homepage":129,"download_link":130,"security_score":131,"vuln_count":132,"unpatched_count":27,"last_vuln_date":133,"fetched_at":29},"docket-cache","Docket Cache – Object Cache Accelerator","24.07.07","Nawawi Jamili","https:\u002F\u002Fprofiles.wordpress.org\u002Fnawawijamili\u002F","\u003Cp>The Docket Cache is a persistent WordPress Object Cache solution designed to store data as plain PHP code. It offers an efficient alternative for users who are unable to utilize Redis or Memcached servers.\u003C\u002Fp>\n\u003Cp>Unlike conventional approaches that rely on \u003Ca href=\"https:\u002F\u002Fwww.php.net\u002Fmanual\u002Fen\u002Ffunction.serialize.php\" rel=\"nofollow ugc\">serializing\u003C\u002Fa> and \u003Ca href=\"https:\u002F\u002Fwww.php.net\u002Fmanual\u002Fen\u002Ffunction.unserialize.php\" rel=\"nofollow ugc\">unserializing\u003C\u002Fa> PHP objects to store them into flat files, this plugin transforms objects into plain PHP code. This method significantly enhances data retrieval speed and overall performance, especially when paired with Zend OPcache.\u003C\u002Fp>\n\u003Cp>For more information, please refer to the documentation on \u003Ca href=\"https:\u002F\u002Fdocs.docketcache.com\u002Fresources\u002Fcaching-in-wordpress\" rel=\"nofollow ugc\">Caching In WordPress\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Why use this plugin?\u003C\u002Fh3>\n\u003Cp>When it comes to reliable persistent Object Cache in WordPress, \u003Ca href=\"https:\u002F\u002Fredis.io\u002F\" rel=\"nofollow ugc\">Redis\u003C\u002Fa> or \u003Ca href=\"https:\u002F\u002Fmemcached.org\u002F\" rel=\"nofollow ugc\">Memcached\u003C\u002Fa> comes on top. However, those solutions require knowledge of server and rarely available at low cost or shared hosting servers.\u003C\u002Fp>\n\u003Cp>The only viable solution is to store object caches in files. In WordPress, exporting PHP objects is not easy. Most plugins implementing file-based caching rely on serializing and unserializing objects to store and retrieve data.\u003C\u002Fp>\n\u003Cp>Docket Cache takes a better approach by turning the object cache into plain PHP code. This solution is faster since WordPress can use the cache directly without running other operations.\u003C\u002Fp>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Object caching + OPcache\u003C\u002Fli>\n\u003Cli>Advanced Post Caching\u003C\u002Fli>\n\u003Cli>Object Cache Precaching\u003C\u002Fli>\n\u003Cli>WordPress Menu Caching\u003C\u002Fli>\n\u003Cli>WordPress Translation Caching\u003C\u002Fli>\n\u003Cli>WordPress Core Query Optimisation\u003C\u002Fli>\n\u003Cli>Term Count Queries Optimisation\u003C\u002Fli>\n\u003Cli>Post, Page, Comment Count Optimisation\u003C\u002Fli>\n\u003Cli>Database Tables Optimisation\u003C\u002Fli>\n\u003Cli>WooCommerce Optimisation\u003C\u002Fli>\n\u003Cli>WP Options Autoload suspension\u003C\u002Fli>\n\u003Cli>Post Missed Schedule Tweaks\u003C\u002Fli>\n\u003Cli>Object Cache + OPcache Stats + OPcache Viewer\u003C\u002Fli>\n\u003Cli>Cache Log\u003C\u002Fli>\n\u003Cli>Cronbot Service\u003C\u002Fli>\n\u003Cli>WP-CLI support\u003C\u002Fli>\n\u003Cli>Multisite \u002F Multi-Network support\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Requirements\u003C\u002Fh3>\n\u003Cp>To use Docket Cache requires minimum:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>PHP 7.2.5\u003C\u002Fli>\n\u003Cli>WordPress 5.4\u003C\u002Fli>\n\u003Cli>Zend OPcache\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Documentation\u003C\u002Fh3>\n\u003Cp>To adjust the plugin behaviour, installation or manage through a command line, please refer to the \u003Ca href=\"https:\u002F\u002Fdocs.docketcache.com\" rel=\"nofollow ugc\">Documentation\u003C\u002Fa> for details.\u003C\u002Fp>\n\u003Ch3>Development\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnawawi\u002Fdocket-cache\u002F\" rel=\"nofollow ugc\">Github Repo\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fnawawi\u002Fdocket-cache\u002Fmaster\u002Fchangelog.txt\" rel=\"nofollow ugc\">Changelog\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Sponsor this project\u003C\u002Fh3>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fdocketcache.com\u002Fsponsorship\u002F?utm_source=wp-readme&utm_campaign=sponsor-uri&utm_medium=wporg\" rel=\"nofollow ugc\">Fund Docket Cache\u003C\u002Fa> one-off or recurring payment to support our open-source development efforts.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Noteworthy Sponsors:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>A heartful thanks and appreciation.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fjimathosting.com\u002F?utm_source=docketcache&utm_campaign=plugin-uri&utm_medium=wporg\" rel=\"nofollow ugc\">Jimat Hosting\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.themecloud.io\u002F?utm_source=docketcache&utm_campaign=plugin-uri&utm_medium=wporg\" rel=\"nofollow ugc\">Themecloud\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwebsavers.ca\u002F?utm_source=docketcache&utm_campaign=plugin-uri&utm_medium=wporg\" rel=\"nofollow ugc\">Websavers Inc\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Favu.nu\u002F?utm_source=docketcache&utm_campaign=plugin-uri&utm_medium=wporg\" rel=\"nofollow ugc\">Avunu LLC\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Flinqru.jp\u002F?utm_source=docketcache&utm_campaign=plugin-uri&utm_medium=wporg\" rel=\"nofollow ugc\">Linqru\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.gentlemansguru.com\u002F?utm_source=docketcache&utm_campaign=plugin-uri&utm_medium=wporg\" rel=\"nofollow ugc\">Gentleman’s Guru\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.securepay.my\u002F?utm_source=docketcache&utm_campaign=plugin-uri&utm_medium=wporg\" rel=\"nofollow ugc\">SecurePay\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fdnsvault.net\u002F?utm_source=docketcache&utm_campaign=plugin-uri&utm_medium=wporg\" rel=\"nofollow ugc\">DNSVault\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fexnano.io\u002F?utm_source=docketcache&utm_campaign=plugin-uri&utm_medium=wporg\" rel=\"nofollow ugc\">Exnano Creative\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Other sponsors are mentioned in the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnawawi\u002Fdocket-cache\u002Fissues\u002F5\" rel=\"nofollow ugc\">honourable list\u003C\u002Fa>\u003C\u002Fp>\n","Supercharge your website using a persistent object cache, accelerates caching with OPcache, an efficient alternative to Redis and Memcached.",20000,314105,50,"2026-02-08T14:50:00.000Z","5.4","7.2.5",[21,127,22,128,23],"database","opcache","https:\u002F\u002Fdocketcache.com\u002F?utm_source=wp-plugins&utm_campaign=plugin-uri&utm_medium=wp-dash","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fdocket-cache.24.07.07.zip",89,4,"2026-01-07 00:00:00",{"attackSurface":135,"codeSignals":200,"taintFlows":262,"riskAssessment":307,"analyzedAt":315},{"hooks":136,"ajaxHandlers":196,"restRoutes":197,"shortcodes":198,"cronEvents":199,"entryPointCount":27,"unprotectedCount":27},[137,143,147,151,155,159,164,167,170,173,175,179,181,185,188,191,194],{"type":138,"name":139,"callback":140,"file":141,"line":142},"action","admin_init","register_my_settings","includes\\class-sqlite-object-cache-settings.php",71,{"type":144,"name":145,"callback":145,"file":141,"line":146},"filter","debug_information",75,{"type":138,"name":148,"callback":149,"file":141,"line":150},"admin_menu","add_menu_item",78,{"type":144,"name":152,"callback":153,"priority":80,"file":141,"line":154},"plugin_row_meta","filter_plugin_row_meta",99,{"type":138,"name":156,"callback":157,"file":141,"line":158},"shutdown","propagate_option",112,{"type":138,"name":160,"callback":161,"file":162,"line":163},"admin_notices","closure","includes\\class-sqlite-object-cache.php",140,{"type":138,"name":139,"callback":165,"file":162,"line":166},"maybe_update_dropin",154,{"type":138,"name":168,"callback":161,"priority":27,"file":162,"line":169},"upgrader_process_complete",157,{"type":138,"name":156,"callback":161,"priority":171,"file":162,"line":172},999,158,{"type":138,"name":156,"callback":161,"priority":171,"file":162,"line":174},175,{"type":138,"name":176,"callback":177,"file":162,"line":178},"init","handle_admin_bar_flush",183,{"type":138,"name":176,"callback":161,"file":162,"line":180},184,{"type":138,"name":182,"callback":183,"priority":13,"file":162,"line":184},"admin_bar_menu","admin_bar_flush_button",186,{"type":138,"name":160,"callback":186,"file":162,"line":187},"maybe_show_flush_notice",187,{"type":138,"name":156,"callback":189,"file":162,"line":190},"update_dropin",244,{"type":138,"name":156,"callback":192,"file":162,"line":193},"delete_all_transients_from_db",245,{"type":138,"name":156,"callback":189,"file":162,"line":195},387,[],[],[],[],{"dangerousFunctions":201,"sqlUsage":202,"outputEscaping":204,"fileOperations":132,"externalRequests":27,"nonceChecks":259,"capabilityChecks":260,"bundledLibraries":261},[],{"prepared":132,"raw":27,"locations":203},[],{"escaped":205,"rawEcho":206,"locations":207},37,25,[208,211,213,215,217,219,221,223,225,227,229,231,233,235,237,239,241,243,245,247,249,251,253,255,257],{"file":141,"line":209,"context":210},484,"raw output",{"file":141,"line":212,"context":210},488,{"file":141,"line":214,"context":210},489,{"file":141,"line":216,"context":210},642,{"file":141,"line":218,"context":210},643,{"file":141,"line":220,"context":210},644,{"file":141,"line":222,"context":210},645,{"file":141,"line":224,"context":210},646,{"file":141,"line":226,"context":210},653,{"file":141,"line":228,"context":210},655,{"file":141,"line":230,"context":210},662,{"file":141,"line":232,"context":210},663,{"file":141,"line":234,"context":210},664,{"file":141,"line":236,"context":210},665,{"file":141,"line":238,"context":210},670,{"file":141,"line":240,"context":210},671,{"file":141,"line":242,"context":210},672,{"file":141,"line":244,"context":210},673,{"file":141,"line":246,"context":210},678,{"file":141,"line":248,"context":210},679,{"file":141,"line":250,"context":210},680,{"file":141,"line":252,"context":210},681,{"file":141,"line":254,"context":210},682,{"file":141,"line":256,"context":210},761,{"file":141,"line":258,"context":210},789,1,3,[],[263,282,293],{"entryPoint":264,"graph":265,"unsanitizedCount":259,"severity":281},"versions (includes\\class-sqlite-object-cache-settings.php:693)",{"nodes":266,"edges":278},[267,272],{"id":268,"type":269,"label":270,"file":141,"line":271},"n0","source","$_SERVER",710,{"id":273,"type":274,"label":275,"file":141,"line":276,"wp_function":277},"n1","sink","echo() [XSS]",713,"echo",[279],{"from":268,"to":273,"sanitized":280},false,"medium",{"entryPoint":283,"graph":284,"unsanitizedCount":259,"severity":281},"settings_page (includes\\class-sqlite-object-cache-settings.php:752)",{"nodes":285,"edges":291},[286,289],{"id":268,"type":269,"label":287,"file":141,"line":288},"$_REQUEST",757,{"id":273,"type":274,"label":275,"file":141,"line":290,"wp_function":277},803,[292],{"from":268,"to":273,"sanitized":280},{"entryPoint":294,"graph":295,"unsanitizedCount":82,"severity":306},"\u003Cclass-sqlite-object-cache-settings> (includes\\class-sqlite-object-cache-settings.php:0)",{"nodes":296,"edges":303},[297,298,299,301],{"id":268,"type":269,"label":270,"file":141,"line":271},{"id":273,"type":274,"label":275,"file":141,"line":276,"wp_function":277},{"id":300,"type":269,"label":287,"file":141,"line":288},"n2",{"id":302,"type":274,"label":275,"file":141,"line":290,"wp_function":277},"n3",[304,305],{"from":268,"to":273,"sanitized":280},{"from":300,"to":302,"sanitized":280},"low",{"summary":308,"deductions":309},"The sqlite-object-cache v1.6.1 plugin exhibits a generally strong security posture, with no known vulnerabilities or CVEs recorded. The static analysis reveals a commendable lack of common attack vectors like AJAX handlers, REST API routes, shortcodes, or cron events exposed without authentication. Furthermore, the plugin demonstrates good development practices by using prepared statements for all its SQL queries and implementing nonce and capability checks.  However, the static analysis does raise a significant concern regarding output escaping, with a substantial 40% of outputs not being properly escaped. This could potentially lead to cross-site scripting (XSS) vulnerabilities if user-supplied data is not handled carefully. Additionally, the taint analysis indicates that all analyzed flows (3 out of 3) involve unsanitized paths, although none reached a critical or high severity. While the absence of critical findings is positive, the presence of unsanitized paths warrants caution and suggests a need for more robust input validation and sanitization.",[310,313],{"reason":311,"points":312},"Unsanitized paths in taint flows",7,{"reason":314,"points":33},"Significant percentage of unescaped output","2026-03-16T17:52:27.812Z",{"wat":317,"direct":326},{"assetPaths":318,"generatorPatterns":321,"scriptPaths":322,"versionParams":323},[319,320],"\u002Fwp-content\u002Fplugins\u002Fsqlite-object-cache\u002Fcss\u002Fstyles.css","\u002Fwp-content\u002Fplugins\u002Fsqlite-object-cache\u002Fjs\u002Fscript.js",[],[320],[324,325],"sqlite-object-cache\u002Fcss\u002Fstyles.css?ver=","sqlite-object-cache\u002Fjs\u002Fscript.js?ver=",{"cssClasses":327,"htmlComments":331,"htmlAttributes":334,"restEndpoints":338,"jsGlobals":341,"shortcodeOutput":343},[328,329,330],"sqlite-object-cache-settings-page","sqlite-object-cache-statistics-page","sqlite-object-cache-status",[332,333],"\u003C!-- SQLite Object Cache -->","\u003C!-- End SQLite Object Cache -->",[335,336,337],"data-sqlite-object-cache-flush","data-sqlite-object-cache-vacuum","data-sqlite-object-cache-size",[339,340],"\u002Fwp-json\u002Fsqlite-object-cache\u002Fv1\u002Fsettings","\u002Fwp-json\u002Fsqlite-object-cache\u002Fv1\u002Fstatistics",[342],"sqliteObjectCacheAdmin",[]]