All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Support passing function names to
logger
configuration option
- Improved Relay integration and support
- Improved unsupported
compression
andserializer
error messages - Renamed more things to "Object Cache Pro"
- Support
url
options without usernames - Ensure
wp_debug_backtrace_summary()
is loaded to increase Batcache compatibility
- Hide passwords in
url
from diagnostics
- Added
relay_listeners
configuration option - Added a
BacktraceLogger
logger for easy debugging - Added wildcard support in non-prefetchable group names
- Split up
setMutationOptions()
methods
- Fixed flushing clusters when using a TLS connection
- Disable prefetching for CLI and API requests
- Added
userlogins
andwc_session_id
to non-prefetchable groups - Prevent even more
__PHP_Incomplete_Class
errors when using prefetching
- Fixed type error in
PrefetchesKeys
- Added support for Relay
- Added
client
configuration option - Added
tls_options
configuration option - Added
ObjectCache::withoutMutations()
helper - Added
PrefetchesKeys::deletePrefetches()
helper - Added
info
log lines towp_cache_init()
- Added wildcard support in non-persistent group names
- Show command count and argument class names in Query Monitor
- Respect
debug
configuration option inwp_cache_init()
- Added
Connector::boot(): void
interface method - Deprecated
WP_REDIS_PHPREDIS_OPTIONS
constant - Renamed several internal exceptions
- Access fully qualified constants
- Expect
PhpRedisConnection
inPhpRedisObjectCache
constructor - Use high resolution time when available
- Increased command time decimals from
2
to4
- Refactored license code to be more graceful
- Prevent
__PHP_Incomplete_Class
errors when using prefetching
- Fixed flushing networks when using the
site
orglobal
option - Fixed preloading in multisite environments
- Fixed prefetches count discrepancies
- Improved PHP 8 compatibility
- Added support for Batcache
- Support flagging groups as non-prefetchable
- Added
ObjectCache::deleteFromMemory(string $key, string $group)
method - Added
ObjectCache::flushMemory()
in favor ofObjectCache::flushRuntimeCache()
- Added
rediscache_validate_dropin
filter - Added
rediscache_validate_dropin_version
filter
- Support loading the object cache as early as
advanced-cache.php
- Changed default value of
cluster_failover
toerror
to improve stability - Refactored
flushBlog(int $siteId, string $flush_network = null)
method - Check
wp_is_file_mod_allowed('object_cache_dropin')
before automatically updating drop-in - Marked PHP 7.3 as outdated
- Prevent another rare undefined variable notice in
wp_cache_init()
- Resolve incompatibility with Query Monitor 3.6.5
- Updated some links to the documentation
- Only preload groups with at least two keys
- Convert integer group names to strings
- Added prefetching 🚀
- Added
ObjectCache::flushRuntimeCache()
method - Added
PhpRedisConnection::withoutMutations()
method - Added support for Query Monitor's new backtraces
- Improved memory usage display in widget
- Speed up command execution when using replication
- Improved parameter formatting in Query Monitor
- Attach backtrace as array along with backtrace summary to log messages
- Moved runtime cache helpers from to
ObjectCache
class
- Fixed updating split
alloptions
hash options with equivalent values - Send
alloptions
hash read commands to the master when using replication - Prevent rare undefined variable notice in
wp_cache_init()
- Overload generic
cache_hits
andcache_misses
properties
- Always return a
Configuration
fromConfiguration::safelyFrom()
- Use invalid configuration option name (not method name) in error log message
- Use key caching in multisite environments
- Added suffix to MU and Drop-in stubs to avoid invalid plugin header error when activating
- Fixed an issue with non-persistent, numeric keys in
get_multiple()
- Show connection class in Query Monitor
- Added
Configuration::parseUrl()
helper - Added support for replicated connections
- Show configuration instantiation errors in widget and site health
- Moved
RedisCachePro\Config
class toRedisCachePro\Configuration\Configuration
- Renamed
slave_failover
configuration option tocluster_failover
✊🏿 - Extracted cluster related configuration into
RedisCachePro\Configuration\Concerns\Cluster
- Trim log messages to 400 characters in Debug Bar log
- Throw
RedisConfigValueException
for invalid configuration values instead ofRedisConfigException
- Create a proper configuration object when cache instantiation fails
- Escape command parameters in Query Monitor extension
- Moved Redis related information from
ObjectCache::info()
toPhpRedisObjectCache::info()
- Always strip
unix://
from PhpRedis host parameter - Ensure
PhpRedisObjectCache::info()->status
returns a boolean - Prevent invalid configuration values from booting plugin
- Look for
object-cache-pro
directory in must-use stub
- Fixed host scheme in PhpRedis 5.0.2 and older
- Added
wp_cache_remember()
andwp_cache_sear()
functions
- Pointed all URLs to the new domain
objectcache.pro
- Change log prefix from
rediscache
toobjectcache
- Slightly sped up API loading in object cache drop-in
- Only throw exception in mu-plugin and drop-in when
WP_DEBUG
is true
- Added
url
configuration option - Added
scheme
configuration option - Added support for
options
parameter added in PhpRedis 5.3 - Added support for LZ4 compression (PhpRedis 5.3+)
- Support connecting to sockets and using TLS in
wp redis cli
- Convert
host
configuration option to lowercase - Set
scheme
when included inhost
configuration option
- Fixed getting multiple numeric keys in
ArrayObjectCache
- Fixed setting
port
,database
,maxttl
andretry_interval
as numeric string
- Reverted eager plugin name change in v1.8.1
- Updated plugin URL to new domain to avoid redirects
- Don't flag drop-in as invalid when it's just outdated
- Look for API in
object-cache-pro
directories
- Fixed an issue with numeric keys and improved error handling in
get_multiple()
- Added
username
configuration option for Redis 6 ACL support - Added
cache
configuration option to set a custom object cache class - Added
connector
configuration option to set a custom connector class - Added
flush_network
configuration option (defaults toall
) - Support flushing individual sites via Network Admin > Sites
- Added
--skip-flush-notice
option towp redis enable
command - Added health check to ensure asynchronous flushing is supported
- Added health check to ensure drop-in can be managed
- Added intuitive alias for all WP CLI commands
- Added support for
wp_cache_get_multiple()
introduced in WP 5.5
- Renamed "Dropin" to "Drop-in" everywhere
- Support flushing individual sites using
wp redis flush
- Hide Redis memory from dashboard widget in multisite environments
- Display notice when license token is not set or invalid, as well as when the license is unpaid or canceled
- Explicitly set permissions of
object-cache.php
toFS_CHMOD_FILE
- Support older versions of Query Monitor
- Ignore HTTP errors for license verification requests
- Prevent undefined index notice in
ObjectCache::info()
- Prevent call to undefined function in
Licensing::telemetry()
- Use
wp_opcache_invalidate()
on drop-in - Refactored
Diagnostics
to useDiagnostic
objects
- Minor dashboard widget improvements
- Minor Query Monitor extension improvements
- Cleanup plugin options upon deactivation
- Disable free version when activating plugin to avoid confusion
- Escape more HTML outputs
- Prevent unnecessary license verification requests
- Always send
setOption()
values as string - Fixed Query Monitor panels not showing up for some setups
- Fixed
ArrayObjectCache
fallback instantiation inwp_cache_init()
- Format all commands parameters using
json_encode()
in Query Monitor panel
- Added support for Query Monitor
- Added context to license issues in the dashboard widget
- Show updates for must-use plugin and object cache drop-in
- Improved formatting of config values in diagnostics
- Don't highlight
noeviction
policy when maxTTL is set
- Prevent unnecessary plugin update requests
- Support PHP 7.0 and PhpRedis 3.1.1
- Indicate missing license token in dashboard widget
- Switched to
WP_CLI\Utils\proc_open_compat()
forwp redis cli
- Ping Redis during object cache initialization to catch
LOADING
errors
- Fixed potential
TypeError
duringupgrader_process_complete
action
- Fixed global group cache keys
- Prevent XSS injection using cache group names when using Debug Bar
- Added
Requires PHP
andNetwork
to plugin header fields - Show supported compression formats in site health
- Initialize plugin after all plugins have been loaded
- Improved the plugin version and basename detection
- Improved muting the
wp redis cli
auth warning - Don't require setting
port
when connecting to a unix socket - Validate config connection information before connecting
- Always inline widget styles (1015 bytes)
- Always inject plugin details into
update_plugins
transient - Improved obfuscation of sensitive values
- Hide health link from plugin actions in WP <5.2 and multisite networks
- Prevent widget color clashing with color scheme
- Fixed detection of multisite networks
- Fixed setting global and non-persistent groups
- Fixed notices in Debug Bar extension
- Fixed
INFO
command when using cluster
- Removed
wp_clear_scheduled_hook
forrediscache_report
- Added support for storing
alloptions
key as hash - Added
wp redis cli
command to spawnredis-cli
process with configuration - Support
WP_REDIS_DIR
constant inmu-plugin.php
stub
- Ensure object cache drop-in is valid before flushing via CLI
- Colorized
wp redis flush
errors
- Fixed typo in
RedisConfigMissingException
- Fixed logs missing from Debug Bar
- Fixed cloning logic in
PhpRedisObjectCache::storeInMemory()
- Inline styles when plugin is symlinked or located outside of web root
- Added support for asynchronous flushing
- Added support for data compression using LZF and Zstandard
- Added network admin dashboard widget
- Added
wp redis flush
command with support for--async
flag - Automatically update drop-in after plugin update
- Show used and max memory in widget, site health and Debug Bar
- Switched to using
ErrorLogLogger
by default - The
ArrayLogger
now extendsErrorLogLogger
and vice versa - The log levels now default to
['emergency', 'alert', 'critical', 'error']
- Changed log level of
ObjectCache::error()
fromcritical
toerror
- Introduced
PhpRedisMissingException
andPhpRedisOutdatedException
- Attempt direct filesystem access when WP filesystem initialization fails
- Renamed internal cache methods in
PhpRedisObjectCache
to be more descriptive - Capture more errors by using
Throwable
in some places - Moved Debug Bar HTML into template files
- Support setting
log_levels
configuration option tonull
- Support setting
token
andpassword
tonull
- Removed captured errors from site health information
- Added health checks link to plugin actions
- Made initialization exceptions more helpful
- Escape HTML in Debug Bar log messages
- Improved pinging cluster nodes
- Fixed duplicate prefix when using cluster
- Fixed undefined index notices in
Licensing
- Fixed a issue when loading widget styles as must-use plugin
- Resolved minor spelling mistakes
- Added dashboard widget
- Added support for automatic WordPress updates
- Added diagnostic tests and information to Tools > Site Health
- Added
token
configuration option to set license token
- Disable object cache when deactivating/uninstalling the plugin
- Fixed DebugBar integration on case-sensitive filesystems
- Added log levels
- Added
WP_REDIS_DISABLED
environment variable
- Use
PhpRedisConnection
for each master when flushing clusters - Obfuscate all non-
null
passwords in diagnostics - Allow password to be
null
for more convenient fallbacks
- Prevent timeouts when flushing database
- Use inline styles to clear floats in Debug Bar panels
- Obfuscate password in constants section of diagnostics
- Initial stable release