• Hello,

    One quick question about the compatibility of this api cache plugin with the W3Total cache plugin. We are using the w3 Total cache plugin with Redis and Memcache. I want to improve the performance of API end points. Would this plugin will be working along with W3Total cache?

    Thanks
    Jenil

    • This topic was modified 5 years, 11 months ago by Jenil Kanani.
Viewing 12 replies - 1 through 12 (of 12 total)
  • Plugin Author Acato

    (@acato)

    Hi @jenilk

    I just did a really quick test on a local development environment to see if everthing would still be working when W3 Total Cache is activated. (Since W3TC is a very advanced plugin with a lot of possible settings, a quick test is never enough to really be sure.)

    Since we use transients to store the caches, I specifically targetted my test to Object caching. I installed Memcached on my local environment, activated Object caching in W3TC and set it to use Memcached. Everything kept on working as it should ??
    However, when I unchecked the setting ‘Store transients in database’ the caching of the REST API broke. At this point I have no idea why, it could be simply that I misconfigured Memcached on my local environment, or it could have some deeper cause. Nevertheless, it is something that we have to dive deeper into in order for us to be able to actually tell what is causing it and if and how we can solve it.

    So for now: you can use W3 Total Cache together with our WP REST Cache plugin, as long as you do not uncket the setting ‘Store transients in database’. We will however investigate this further and if possible solve the issues with this setting.

    Thread Starter Jenil Kanani

    (@jenilk)

    Awesome, Thanks for look into this.

    I installed this plugin to my dev environment. I got some improvement in performance, But I wondered when I am checking the statistics inside End Point API Caches and Item Caches the Active status is appearing as Cache is expired or flushed.

    Can you let me know what will be the reason and How could I overcome from this?

    Thanks
    Jenil

    Plugin Author Acato

    (@acato)

    Well that was exactly the issue I was getting when I installed W3TC and unchecked the setting ‘Store transients in database’.

    The reason you are getting the status Cache is expired or flushed is because the transient can no longer be retrieved. So somehow the transients aren’t stored correctly.

    Did you uncheck the setting? If not, than there must be something else that is interfering with the transients.

    Thread Starter Jenil Kanani

    (@jenilk)

    Thanks for the reply.

    Can you please let me know from where I can check/uncheck settings for storing transients in database?

    Thanks
    Jenil

    Plugin Author Acato

    (@acato)

    You can do so here: /wp-admin/admin.php?page=w3tc_objectcache

    Thread Starter Jenil Kanani

    (@jenilk)

    Thanks @acato for the quick response.

    The settings for storing transients is checked – Enabled. But still I am facing the issue, Can you please let me know what other cause which may affect to this issue?

    Looking forward to hear back you for resolution on this.

    Thanks
    Jenil

    Plugin Author Acato

    (@acato)

    Hi @jenilk

    Unfortunately at this point I am not sure what is causing the issue. It is probably related to the issue I got when I unchecked that setting, but I won’t know for sure until I investigate this more thoroughly.

    To help me debugging this issue, could you please tell me which cache types you enable in W3 Total Cache? (i.e. Page Cache, OpCode Cache, …) And potentially which Cache Method (Disk / Opcode / Memcached / Redis / ..)

    I am sorry I can not help you at this point, but we will investigate and try to solve this as soon as possible.

    Thread Starter Jenil Kanani

    (@jenilk)

    I have enabled the Page cache with method Redis and Browser cache enabled.

    Thread Starter Jenil Kanani

    (@jenilk)

    Hi @acato,

    Any solution do you get?

    Looking forward!

    Thanks
    Jenil

    Plugin Author Acato

    (@acato)

    Hi @jenilk

    No not yet. I am working on a deadline, so unfortunately I don’t have time to investigate this issue right away. I will let you know once we have investigated the issue and implemented a fix for it.

    Plugin Author Acato

    (@acato)

    Hi @jenilk

    I finally have found the time to investigate this issue more thoroughly and have found the cause of the issue when memcached is activated. It has to do with the default expiration setting of 1 year. When memcached is activated, the PHP Memcached class is used. Just like the set_transient() function of WordPress it has an expiration setting.

    However for memcached there is a small difference which can make a huge impact: whenever an expiration of more than or equeal to 30 days is used, it is no longer treated as seconds-from-now, but in stead as a unix timestamp. Since 1 year in seconds is a unix timestamp which translates to Fri, 01 Jan 1971 05:48:46, the cache is immediately expired.

    So a quick fix would be to set your cache timeout lower than 30 days. Meanwhile we are searching for a better fix, that will allow you to have a cache timeout of more than 30 days.

    Plugin Author Acato

    (@acato)

    Hi @jenilk

    We just released a new version of our plugin, which includes a check to see if you are using external object cache and if Memcache(d) is installed. If so a checkbox is available on the settings page of our plugin which can be checked if Memcache(d) is indeed used. Once the checkbox is checked the transients will all be stored as a unix timestamp, which should fix the problem.

Viewing 12 replies - 1 through 12 (of 12 total)
  • The topic ‘Compatibility with other cache plugins’ is closed to new replies.