wp-cli / cache-command

Manages object and transient caches.
MIT License
15 stars 25 forks source link

Be explicit for no results when using wp transient list and external object cache #61

Closed GaryJones closed 1 year ago

GaryJones commented 4 years ago

When using an external object cache, transients are stored in the object cache and not in the database.

wp transient get ... will still work correctly, as it wraps the get_transient() or get_site_transient() functions.

However, wp transient list will always return an empty table, as the handler for the WP-CLI command generates some SQL to explicitly look in the options or sitemeta tables, which will be empty of transients.

Could we have an early guard clause for the list() method that reminds users that transients are stored in the object cache and so can't be displayed, if the object cache is being used?

(At least until WP core has get_transients() function that can be wrapped.)

sjaks commented 4 years ago

The wp transient list command should indeed show a message that object cache is in use, at the very least. The expected behavior is to get the cached transients as stated in Transient_Command.php#L15. It would be important to wrap object cache.

mackensen commented 3 years ago

This was a real head-scratcher when I encountered it today. If you're using Redis (for example) you can do something like KEYS XXX:transient:*, where XXX is the site id, to get all the transients, but that's not cross-platform and there doesn't seem to be a core function for getting object cache keys.

GaryJones commented 2 years ago

Adding a guard clause of wp_using_ext_object_cache() at the start of https://github.com/wp-cli/cache-command/blob/main/src/Transient_Command.php#L76 may be sufficient.

danielbachhuber commented 1 year ago

@GaryJones Want to submit a pull request for what you might suggest?

GaryJones commented 1 year ago

@danielbachhuber It's not something I'm going to get around to anytime soon, so please go ahead :-)

danielbachhuber commented 1 year ago

https://github.com/wp-cli/cache-command/pull/82