Redis Cache By Xon

Redis Cache By Xon 2.3.0

No permission to download
  • 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.
  • Due to an XF2.0.10 bug, the previous 2.1.6 zip was not compatible with some zip extractors
Reactions: Sunka and eva2000
  • Make AdminCP redis info block collapsable
  • Ensure cached css entries expire after ~1 hour like stock XenForo caching does.
    • On install, all existing css entries will be purged from the configured redis instance
  • Tweak execution order of class extensions/template modifications/etc to provide predictable ordering
  • Add LICENCE and README.MD to redistributable.
Reactions: Sunka
  • If decompression of fetched content fails, just fail the cache get request. This should be a safe trade-off as if the key returns nothing XF stack should regenerate it.
    • Makes changing compression type a cache flush rather than rendering the site useless until Redis is manually flushed.
  • Support configuration-less usage to match built-in Redis provider.
    • If no server has been configured try localhost
Reactions: Sunka
  • Remove debug code injecting multiple slaves
  • Fix correctly generating connection to slave for details.
  • Report serializer being used (php/igbinary).
Reactions: Sunka and eva2000
  • Add redis stats to dashboard, and under Tools -> Redis Info.