rhubarbgroup / redis-cache

A persistent object cache backend for WordPress powered by Redis. Supports Predis, PhpRedis, Relay, replication, sentinels, clustering and WP-CLI.
https://wordpress.org/plugins/redis-cache/
GNU General Public License v3.0
427 stars 149 forks source link

redis object cache major bug #455

Closed zoddshop closed 1 year ago

zoddshop commented 1 year ago

I have been speaking with Till from your team and there is a bug in Redis Object Cache My redis is using 6gigabytes and memory. Your plugin is only 2 mb.. 2mb

Memory

used_memory:5773951216 used_memory_human:5.38G used_memory_rss:5945475072 used_memory_rss_human:5.54G used_memory_peak:5804663688 used_memory_peak_human:5.41G used_memory_peak_perc:99.47% used_memory_overhead:319616504 used_memory_startup:809640 used_memory_dataset:5454334712 used_memory_dataset_perc:94.48% allocator_allocated:5774381592 allocator_active:5910495232 allocator_resident:5996994560 total_system_memory:134891732992 total_system_memory_human:125.63G used_memory_lua:41984 used_memory_lua_human:41.00K used_memory_scripts:0 used_memory_scripts_human:0B number_of_cached_scripts:0 maxmemory:17179869184 maxmemory_human:16.00G maxmemory_policy:allkeys-lfu

zoddshop commented 1 year ago

Your plugin is the only one accessing redis.. It seem redis object cache is ineffective because it wont use over 2mb. I've tested it on several servers already.

tillkruss commented 1 year ago

Please post the plugin's diagnostics.

zoddshop commented 1 year ago

Status: Connected Client: PhpRedis (v5.3.7) Drop-in: Valid Disabled: No Ping: 1 Errors: [] PhpRedis: 5.3.7 Relay: Not loaded Predis: Not loaded Credis: Not loaded PHP Version: 8.1.14 Plugin Version: 2.3.0 Redis Version: 6.0.16 Multisite: No Metrics: Enabled Metrics recorded: 1847 Filesystem: Working Global Prefix: "wp" Blog Prefix: "wp" WP_REDIS_PLUGIN_PATH: "/usr/local/lsws/Example/html/wordpress/wp-content/plugins/redis-cache" Global Groups: [ "blog-details", "blog-id-cache", "blog-lookup", "global-posts", "networks", "rss", "sites", "site-details", "site-lookup", "site-options", "site-transient", "users", "useremail", "userlogins", "usermeta", "user_meta", "userslugs", "redis-cache", "blog_meta" ] Ignored Groups: [ "counts", "plugins", "themes", "theme_json" ] Unflushable Groups: [] Groups Types: { "blog-details": "global", "blog-id-cache": "global", "blog-lookup": "global", "global-posts": "global", "networks": "global", "rss": "global", "sites": "global", "site-details": "global", "site-lookup": "global", "site-options": "global", "site-transient": "global", "users": "global", "useremail": "global", "userlogins": "global", "usermeta": "global", "user_meta": "global", "userslugs": "global", "redis-cache": "global", "counts": "ignored", "plugins": "ignored", "themes": "ignored", "blog_meta": "global", "theme_json": "ignored" } Drop-ins: [ "Redis Object Cache Drop-In v2.3.0 by Till Krüss" ]

tillkruss commented 1 year ago

You don't seem to have defined any WP_REDIS_* constants.

Please make sure Redis Object Cache is pointed to the correct Redis instance by following the installation instructions in the README.

zoddshop commented 1 year ago

still did not change anything with constants defined. the plugin maxes out at 1.75mb... yet my redis info shows it is using 6gb

error

Status: Connected Client: PhpRedis (v5.3.7) Drop-in: Valid Disabled: No Ping: 1 Errors: [] PhpRedis: 5.3.7 Relay: Not loaded Predis: Not loaded Credis: Not loaded PHP Version: 8.1.14 Plugin Version: 2.3.0 Redis Version: 6.0.16 Multisite: No Metrics: Enabled Metrics recorded: 2089 Filesystem: Working Global Prefix: "wp" Blog Prefix: "wp" WP_REDIS_HOST: "127.0.0.1" WP_REDIS_PORT: 6379 WP_REDIS_DATABASE: 0 WP_REDIS_TIMEOUT: 1 WP_REDIS_READ_TIMEOUT: 1 WP_REDIS_PREFIX: "btc" WP_REDIS_PLUGIN_PATH: "/usr/local/lsws/Example/html/wordpress/wp-content/plugins/redis-cache" Global Groups: [ "blog-details", "blog-id-cache", "blog-lookup", "global-posts", "networks", "rss", "sites", "site-details", "site-lookup", "site-options", "site-transient", "users", "useremail", "userlogins", "usermeta", "user_meta", "userslugs", "redis-cache", "blog_meta" ] Ignored Groups: [ "counts", "plugins", "themes", "theme_json" ] Unflushable Groups: [] Groups Types: { "blog-details": "global", "blog-id-cache": "global", "blog-lookup": "global", "global-posts": "global", "networks": "global", "rss": "global", "sites": "global", "site-details": "global", "site-lookup": "global", "site-options": "global", "site-transient": "global", "users": "global", "useremail": "global", "userlogins": "global", "usermeta": "global", "user_meta": "global", "userslugs": "global", "redis-cache": "global", "counts": "ignored", "plugins": "ignored", "themes": "ignored", "blog_meta": "global", "theme_json": "ignored" } Drop-ins: [ "Redis Object Cache Drop-In v2.3.0 by Till Krüss" ]

tillkruss commented 1 year ago

No that we have the correct server host and port. What does this show:

redis-cli -h 127.0.0.1 -p 6379 INFO MEMORY | grep 'used_memory'

This must be executed on the server running WordPress.

zoddshop commented 1 year ago

used_memory:4914199080 used_memory_human:4.58G used_memory_rss:5016317952 used_memory_rss_human:4.67G used_memory_peak:4997724152 used_memory_peak_human:4.65G used_memory_peak_perc:98.33% used_memory_overhead:180364400 used_memory_startup:809640 used_memory_dataset:4733834680 used_memory_dataset_perc:96.35% used_memory_lua:41984 used_memory_lua_human:41.00K used_memory_scripts:0 used_memory_scripts_human:0B

tillkruss commented 1 year ago

Aha. the 2MB is for the current page. Not the entire cache.

tillkruss commented 1 year ago

Clarified in f6501c60fc405926ab5cf05c2e8f82de47d855a0.