Redis Cache By Xon

Redis Cache By Xon 2.11.1

No permission to download
  • Remove "Disable individual css cache" option.
    • While the xf_css_cache table is subject to 'thundering herd' issues; it still provides a benefit during cache rebuilds and the frequent invalidation is a XF issue with it's usage
  • Implement short (~5 minute) caching of individual css templates & parse_less_color/parse_less_func functions (parse_less_func is from Advanced BbCodes Pack). Minor, but measurable performance improvement
    • When caching is enabled, this hits redis instead of the xf_css_cache table.
  • On Style changes, adjust expiry to keep redis memory usage from ballooning
  • Support for phpredis extension v5
  • Add options icon
  • Remove "Count Moderated Threads" option (caching should automatically be per-user now)
  • Simplify Thread list count caching to be more robust
  • Re-organise example config to be per-purpose, no actual changes to add-on itself
  • Like
Reactions: Sunka and eva2000
  • Workaround for persistent connections and XF2.1 page cache feature causing login failures when using multiple databases in the same redis instance.
  • Track latest upstream Credis library
  • Enable LUA by default (all Redis versions since v2.8 have supported LUA scripting)
  • Multi-DB support when counting keys in Redis instamce
  • Support being a drop in replacement for the stock Redis provider
    • Alias the config key "host" to "server"
Thanks to @DragonByte Tech for contributions
  • Update layout of master Redis server to match server environment report
  • Include free/peak/max memory usage in stats output
  • New option to default disable XenForo's individual templating css caching.
    • XenForo2 provides per-template css caching which is vulnerable to "thundering herd" cache slamming by introducing unexpected write load which is vulnerable to MySQL locking via insert ... on duplicate key update.
    • This is only an issue for sites which experience large numbers of concurrent users
    • The full CSS output is still cached by whatever caching layer is defined, which saves vastly more time than individual template caching.
  • Support zstd compression
  • New retry_reads_on_master option, when a read to the slave-redis instance fails (ie due to the redis instance still loading data), reads will fail-back to the master instance.
  • Confirm php 7.3 compatibility for pure-php redis connector
  • Compat bugfix for phpredis-v3 for exists() function. phpredis-v3 returns a bool, credis/phpredis-v4 return an int, this ensures all backend redis connectors return the same type for the exists function.