SQLite Object Cache
A persistent object cache helps your site perform well. This one uses the widely available SQLite3 extension, and optionally the igbinary and APCu extensions to php. Many hosting services offer those extensions, and they are easy to install on a server you control.
What is this about?
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 page cache; 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.
Las cachés son omnipresentes en la informática, y WordPress tiene su propio subsistema de almacenamiento en caché. Las cachés contienen copias a corto plazo de los resultados de costosas búsquedas o cálculos de bases de datos, y permiten que el software use la copia en lugar de repetir la costosa operación. Este plugin (al igual que otros plugin de almacenamiento en caché de objetos) extiende el subsistema de almacenamiento en caché de WordPress para guardar esas copias a corto plazo de la vista de página a la vista de página. El caché de WordPress resulta ser un caché de memoización.
Sin una caché de objetos persistente, cada vista de página de WordPress debe usar el servidor de base de datos MariaDB o MySQL para recuperar todo sobre tu sitio. Cuando un usuario solicita una página, WordPress comienza desde cero y carga todo lo que necesita del servidor de base de datos. Solo entonces puede entregar contenido al usuario. Con una caché de objetos persistente, WordPress carga inmediatamente gran parte de la información que necesita. Esto aligera la carga en el servidor de base de datos y entrega contenido a los usuarios más rápido.
Who should use this?
If your site runs on a single web server machine, and that server provides the SQLite3 and igbinary extensions to php, this plugin will almost certainly make your site work faster. And if that server provides the APCu extension, this plugin uses it too.
Some hosting providers offer redis cache servers. If your provider offers redis, it may be a good choice. You can use it via the Redis Object Cache plugin. Sites using redis have one SQL database and another non-SQL storage server: redis. Other hosting providers offer memcached, which has the Memcached Object Cache plugin. And some large multipurpose cache plugins, such as the LiteSpeed Cache, also offer object caching based on one of those cache server software packages.
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.
But, for single-server site configurations, SQLite, possibly assisted by APCu, performs well. And the vast majority of sites are single-server.
APCu
APCu 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.
Please look at Installation to learn how to configure this plugin to use APCu. The plugin works fast without it, and faster with it.
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.
WP-CLI
You can control this plugin via WP-CLI once you activate it. Please type this command into your shell for details.
wp help sqlite-object-cache
Credits
Thanks to Till Krüss. His Redis Object Cache plugin serves as a model for this one. And thanks to Ari Stathopoulos and Jonny Harris for reviewing this. Props to Matt Jones for finding and fixing a bug that appeared on a heavily loaded system. Thanks to Massimo Villa for testing help, and to nickchomey for a comprehensive code review. All defects are, of course, entirely the author’s responsibility.
Y gracias a Jetbrains por el uso de sus herramientas de desarrollo de software, especialmente PhpStorm. Es difícil imaginar cómo podría desarrollarse un plugin como este sin las herramientas de PhpStorm para explorar bases de código épicas como la de WordPress.
How can I learn more about making my WordPress site more efficient?
We offer several plugins to help with your site’s database efficiency. You can read about them here.
