Does Redis still require W3TC?


#1

Still new to all of this, so please bear with me :slight_smile:

I’m currently using fastcgi + W3TC (I believe the former is for full page cache, the latter for object and database cache?)

Is redis also exclusively used for full page cache? Can I just switch out fastcgi for redis? Will W3TC still be required?

Also, why should I set it to ‘memcache’ instead of ‘Opcode: APC’ (from guide here: https://rtcamp.com/easyengine/docs/commands/site/ee-site-create/standard-wordpress-sites/#wordpress--fastcgi-cache) Btw, is that guide still up to date? Or did I miss a comprehensive setup tutorial on the plugins somewhere?

Also, I recently read this Cache Plugin Comparison: http://wpdevshed.com/best-wordpress-cache-plugin/. WP Super Cache seems to be the free winner. Would Redis + WP Super Cache be the best combination?


#2

Running into more questions than answers. Is it possible to use fastcgi for full page cache and Redis for object and database cache instead of W3TC? Or to do everything with Redis since EasyEngine now has full page Redis cache support?


#3

@Francis_Verhoeven

Sorry for delayed reply.

Sure you can use fastcgi for full page cache and Redis for object cache.

But doing so, you will observe fastcgi cache is slower than redis for full page cache.

So why use fastcgi if we are getting performance upgrade with redis?.


#4

Thanks for your answer. Change to Redis for full page cache it is. How about object and database cache? Will EasyEngine still be using W3TC for that?


#5

@Francis_Verhoeven

You can see future of W3TC on this thread with EasyEngine. https://github.com/rtCamp/easyengine/issues/509

We recommend to use redis cache for object cache as well.


#6

@harshadyeola

So just to recap, you would recommend to: –wpredis (which will set up Redis full page cache), install Redis Object Cache plugin (for database and object cache) and nothing else? I take it that W3TC won’t be installed any longer when using --wpredis?


#7

@Francis_Verhoeven

W3TC won’t be installing while you use --wpredis option.


#8

@harshadyeola I just changed from fastcgi to redis, I see you even removed W3TC and replaced it with Redis Object Cache Plugin. Sometimes I forget how easy EasyEngine really is. You guys rock!

I’m going to run some loadtests now, I’ll share them if you’re interested.

Thanks again for the great help!


#9

@Francis_Verhoeven

Correction in my reply before.

Actually fastcgi does not store cache on disk, it stores cache on RAM via tmpfs. but still found redis cache faster than fastcgi , so recommend to use redis cache.

I would be updating my previous answer so that no other person gets wrong information.

Sorry for inconvenience


#10

@Francis_Verhoeven

Would like to see the results you get with redis cache.


#11

First up: FastCGI (for full page cache) with W3TC plugin (for database and object cache)

Next: Redis (for full page cache) with Redis Object Cache plugin DISABLED (for object cache, I guess this doesn’t do database cache, should I install a separate plugin for that? EDIT: I just read that you guys feel database caching is too much of a good thing, so that answers my question: it’s not needed)

Finally: Redis (for full page cache) with Redis Object Cache plugin ENABLED (for object cache)

It seems that the Redis Object Cache plugin causes a little bump


#12

@Francis_Verhoeven

Thanks for sharing the results.

looks redis page cache working better than fastcgi page cache.


#13

I think object cache shouldn’t make difference. Full-page cache supposed to not involve any object cache call (which are done at PHP).

Can you please verify if page your load testing was already cached?


#14

If you tell me how :slight_smile:


#15

For a URL like https://rtcamp.com/ , please run:

curl -X GET -I https://rtcamp.com/       

You should get a line:

X-SRCache-Fetch-Status: HIT

If you get MISS or BYPASS then value for X-SRCache-Fetch-Status then full-page cache is not working.

Added screenshot for reference:


#16

Not getting as much output as you, but it’s a HIT.


#17

I’m also getting the X-Cache-2: Bypass, is this normal?


#18

Yeah, I think it’s duplicate caching?


#19

@rsmith4321

Yes its normal.

@RoldanLT

Here is the meaning of these headers

X-Cache => indicates the fetch status from cache.

X-Cache-2 => indicates cache store status.

If you get HIT for X-Cache means you dont need to store in cache so X-Cache-2 gives BYPASS.


#20
root@vps:/var/log/nginx# curl -X GET -I http://dautu365.com
HTTP/1.1 200 OK
Server: nginx
Date: Wed, 26 Aug 2015 17:55:15 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
X-Powered-By: HHVM/3.9.0
Set-Cookie: PHPSESSID=26cc3b53aa328f34a8e5cb8dbb3b5511; path=/; httponly
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Vary: Accept-Encoding
Pragma: no-cache
X-Pingback: http://dautu365.com/xmlrpc.php
X-SRCache-Fetch-Status: MISS
X-SRCache-Store-Status: STORE
X-Powered-By: EasyEngine 3.3.4

I have installed EasyEngine on a new DigitalOcean VPS. And X-SRCache-Fetch-Status: MISS ?