Site Kit is a one-stop solution for WordPress users to use everything Google has to offer to make…
About WP Redis
This is a plugin for WordPress sites that helps improve speed and performance for high-traffic or dynamically-loaded pages. It integrates with Redis, a high-speed and scalable object cache, and provides a variety of commands for managing and debugging the cache.Frequently asked questions
What is WP Redis?
WP Redis is a WordPress plugin that allows you to back your WP Object Cache with Redis. Redis is a high-performance in-memory storage backend suitable for high-traffic sites.
Who is the author of WP Redis?
The author of WP Redis is Pantheon Systems.
What are the benefits of using a persistent object cache like Redis?
A persistent object cache is beneficial for sites concerned with high traffic, speed for logged-in users, or dynamic pageloads. It can also scale across multiple instances of your application.
Does WP Redis include WP-CLI commands?
Yes, WP Redis implements a variety of WP-CLI commands under the 'wp redis' namespace. These commands include 'cli', 'debug', 'enable', and 'info'.
Can I use WP Redis on any self-hosted WordPress site?
Yes, you can use WP Redis on any self-hosted WordPress site, provided you have Redis installed.
Changelog
1.4.5 (January 21, 2024)
- Support Relay in check_client_dependencies() with the WP_REDIS_USE_RELAY constant [#471]
1.4.4 (November 27, 2023)
- Updates Pantheon WP Coding Standards to 2.0 [#445]
- Handle duplicate keys in
get_multiplefunction [#448] (props @souptik)
1.4.3 (June 26, 2023)
- Bug fix: Fixes assumption that CACHE_PORT & CACHE_PASSWORD are Set. [428] (props @tnolte)
- Adds WP.org validation GitHub action [#435]
- Bug fix: Fixes incorrect order of
array_replace_recursiveand other issues [434] (props @timnolte) - Bug fix: Replace use of wp_strip_all_tags in object-cache.php [434] (props @timnolte)
- Bug fix: Don’t strip tags from the cache password. [434] (props @timnolte)
1.4.2 (May 15, 2023)
- Bug fix: Removes exception loop caused by
esc_htmlin_exception_handler()[421]
1.4.1 (May 11, 2023)
- Bug fix:
wp_cache_flush_runtimeshould only clear the local cache [413]
1.4.0 (May 9, 2023)
- Add support for
flush_runtimeandflush_groupfunctions [#405] - Add
pantheon-wp-coding-standards[#400] - Update CONTRIBUTING.MD [#406]
- Update Composer dependencies [#401]
1.3.5 (April 6, 2023)
- Bump tested up to version to 6.2
- Update Composer dependencies [#394]
1.3.4 (March 7, 2023)
- Set
missing_redis_messageif Redis service is not connected [#391].
1.3.3 (February 28, 2023)
- Add PHP 8.2 support [#388].
- Remove Grunt, add valid license to Composer file [#387].
- Update Composer dependencies [#384] [#385].
1.3.2 (December 5, 2022)
- Fix broken
wp_cache_supportsfunction [#382].
1.3.1 (December 2, 2022)
- Declare
wp_cache_supportsfunction and support features. [#378] - Make dependabot target
developbranch for PRs. [#376]
1.3.0 (November 29, 2022)
- Added CONTRIBUTING.MD and GitHub action to automate deployments to wp.org. [#368]
1.2.0 (February 17, 2022)
- Adds support for Relay via
WP_REDIS_USE_RELAYconstant [#344].
1.1.4 (October 21, 2021)
- Fixes some faulty logic in
WP_REDIS_IGNORE_GLOBAL_GROUPScheck [#333].
1.1.3 (October 21, 2021)
- Supports a
WP_REDIS_IGNORE_GLOBAL_GROUPSconstant to prevent groups from being added to global caching group [#331].
1.1.2 (March 24, 2021)
- Applies logic used elsewhere to fall back to
$_SERVERinwp_redis_get_info()[#316].
1.1.1 (August 17, 2020)
- Returns cache data in correct order when using
wp_cache_get_multiple()and internal cache is already primed [#292].
1.1.0 (July 13, 2020)
- Implements
wp_cache_get_multiple()for WordPress 5.5 [#287]. - Bails early when connecting to Redis throws an Exception to avoid fatal error [285].
1.0.1 (April 14, 2020)
- Adds support for specifying Redis database number from environment/server variables [#273].
1.0.0 (March 2, 2020)
- Plugin is stable.
0.8.3 (February 24, 2020)
- Fixes
wp redis cliby usingproc_open()directly, instead ofWP_CLI::launch()[#268].
0.8.2 (January 15, 2020)
- Catches exceptions when trying to connect to Redis [#265].
0.8.1 (January 10, 2020)
- Adds
WP_REDIS_DEFAULT_EXPIRE_SECONDSconstant to set default cache expire value [#264].
0.8.0 (January 6, 2020)
- Uses
flushdbinstead offlushAllto avoid flushing the entire Redis instance [#259].
0.7.1 (December 14, 2018)
- Better support in
wp_cache_init()for drop-ins like LudicrousDB [#231]. - Cleans up PHPCS issues.
0.7.0 (August 22, 2017)
- Adds filterable connection methods to permit use of Predis. See humanmade/wp-redis-predis-client for more details.
0.6.2 (June 5, 2017)
- Bug fix: Preserves null values in internal cache.
- Bug fix: Converts numeric values to their true type when getting.
0.6.1 (February 23, 2017)
- Bug fix: correctly passes an empty password to
redis-cli. - Variety of improvements to the test suite.
0.6.0 (September 21, 2016)
- Introduces three new WP-CLI commands:
wp redis debugto display cache hit/miss ratio for any URL;wp redis infoto display high-level Redis statistics;wp redis enableto create theobject-cache.phpsymlink. - Permits a Redis database to be defined with
$redis_server['database']. - Introduces
wp_cache_add_redis_hash_groups(), which permits registering specific groups to use Redis hashes, and is more precise than our existingWP_REDIS_USE_CACHE_GROUPSconstant.
0.5.0 (April 27, 2016)
- Performance boost! Removes redundant
existscall fromwp_cache_get(), which easily halves the number of Redis calls. - Uses
add_action()and$wpdbin a safer manner for compatibility with Batcache, which loads the object cache before aforementioned APIs are available. - For debugging purposes, tracks number of calls to Redis, and includes breakdown of call types.
- Adds a slew of more explicit test coverage against existing features.
- For consistency with the actual Redis call, calls
delinstead ofdelete. - Bug fix: If a group isn’t persistent, don’t ever make an
existscall against Redis.
0.4.0 (March 23, 2016)
- Introduces
wp redis-cli, a WP-CLI command to launch redis-cli with WordPress’ Redis credentials. - Bug fix: Ensures fail back mechanism works as expected on multisite, by writing to sitemeta table instead of the active site’s options table.
- Bug fix: Uses ‘default’ as the default cache group, mirroring WordPress core, such that
$wp_object_cache->add( 'foo', 'bar' )===wp_cache_add( 'foo', 'bar' ).
0.3.0 (February 11, 2016)
- Introduces opt-in support for Redis cache groups. Enable with
define( 'WP_REDIS_USE_CACHE_GROUPS', true );. When enabled, WP Redis persists cache groups in a structured manner, instead of hashing the cache key and group together. - Uses PHP_CodeSniffer and WordPress Coding Standards sniffs to ensure WP Redis adheres to WordPress coding standards.
- Bug fix: Permits use of a Unix socket in
$redis_server['host']by ensuring the supplied$portis null.
0.2.2 (November 24, 2015)
- Bug fix: use
INSERT IGNORE INTOinstead ofINSERT INTOto prevent SQL errors when two concurrent processes attempt to write failback flag at the same time. - Bug fix: use
E_USER_WARNINGwithtrigger_error(). - Bug fix: catch Exceptions thrown during authentication to permit failing back to internal object cache.
0.2.1 (November 17, 2015)
- Bug fix: prevent SQL error when
$wpdb->optionsisn’t yet initialized on multisite.
0.2.0 (November 17, 2015)
- Gracefully fails back to the WordPress object cache when Redis is unavailable or intermittent. Previously, WP Redis would hard fatal.
- Triggers a PHP error if Redis goes away mid-request, for you to monitor in your logs. Attempts one reconnect based on specific error messages.
- Forces a flushAll on Redis when Redis comes back after failing. This behavior can be disabled with the
WP_REDIS_DISABLE_FAILBACK_FLUSHconstant. - Show an admin notice when Redis is unavailable but is expected to be.
0.1
- Initial commit of working code for the benefit of all.
