I'm trying to understand a bit better the differences in caching engines, and which ones can be stacked with the other. Right now we have two webservers with a separate DB server. We're gonna be using Redis over TCP in order for both webservers to share the same cache. I'm interested in Varnish, or eAccelerator - as I understand eAccelerator is a php-caching engine, while Redis, similar to Memcached is a db caching - so those two should stack? And what about Varnish? Memcached and Redis are mutually exclusive as I understand.
Stacking caching engines
373 Views Asked by srgb At
1
There are 1 best solutions below
Related Questions in CACHING
- ClassCastException: datastructures.instances.JClass cannot be cast to java.util.ArrayList
- Robospice. How to save data and how to get data from DB?
- Make @lru_cache ignore some of the function arguments
- Xib taking long time (>1s) to load. UIFont cache seems to blame
- Android picasso cache images
- Rails 4 low-level caching not working
- How to cache Exchange web service API autodiscoverurl?
- The process cannot access the file because it is being used by another process asp.net
- Alamofire loading from cache even when cache policy set to ReloadIgnoringLocalAndRemoteCacheData
- Java Heap vs Cache
- In what use cases is locking on ASP.NET cache required/desirable
- Chrome cache overriding angularjs disabling of cache
- AFNetworking 2.0 Cache Issue
- Symfony ESI Cache / Surrogate Listener Issue
- Using getOrElseUpdate of TrieMap in Scala
Related Questions in REDIS
- start redis with supervisor
- How to do Mass insertion in Redis using JAVA?
- RedisResponseException: Unknown reply on multi-request
- Redis / Get all keys & values from redis with prefix
- Remove a member from multiple sets in Redis
- Using memcached or Redis on aws-elasticache
- Get Socket Object by Id with node, redis-adapter and socket.io
- how can i save a complex json as string in redis and retrieve it as unescaped legit json object
- How to specify versions on PIP when installing a python package with it's dependencies
- Eloquent model for Redis
- Is exists check required before calling StringSet method of StrackExchange.Redis
- Predis: Pros and Cons of the two cluster strategies
- hmset redis with result from mysqlDB
- does redis cluster support transactions ?
- How change redis to be persistent
Related Questions in MEMCACHED
- Search for a key in django.core.cache
- how to install memcached PECL on centos 7 server
- Using memcached or Redis on aws-elasticache
- Laravel/Lumen: Could not establish Memcached connection
- Memcached on Windows (wamp) with Laravel
- ZF2 authentication session storage in memcached
- Using two cache providers in Play Framework at the same time?
- Not able to install php memcache
- Best solution / practice for temp files with Google App Engine PHP?
- Memory occupied by a quite large array MySQL result set in PHP?
- What means that expiration time in Memcached client is set to zero?
- Memcached and PHP Sessions in multiple servers
- recommendation for basic memory caching across process
- mysql memcached
- How to cache a very dynamic website in PHP?
Related Questions in VARNISH
- Magento with SSL + Varnish
- Varnish behavior for no cache-control header
- Boost grace period on varnish when error 500 ocurred
- varnish not work only for one web site
- Varnish ESI Request -- What Cookie Is Sent?
- Installing Varnish as per the Varnish Book?
- Redirect loop with Nginx SSL termination via Varnish/Apache On Wordpress
- Writing to NetworkStream to authenticate with Varnish fails
- Programmatically get Turpentine to apply VCL to Varnish from the commandline
- Control Varnish cache time from php script
- Does setting beresp.ttl to 0s replace previous cache?
- Error following varnish digitalocean configuration guide: Symbol not found: 'req.backend.healthy' (expected type BOOL):
- How to setup and check turpentine varnish cache for Magento?
- When to increase VARNISH_STORAGE_SIZE?
- trying 'PURGE' varnish using curb
Related Questions in EACCELERATOR
- Is eAccelerator still relevant?
- joomla error after hosting it on shared server
- Invalide OpCode and php sort function
- eAccelerator.dll missing in XAMPP Version: 5.6.3
- How to get php class functions' comments?
- Module 'eAccelerator' already loaded php warning
- Multiple Eaccelerator Issues
- How to install eAccelerator for XAMPP on Mac OS X 10.7 Lion
- Should I use PHP accelerator (eAccelerator, APC, etc) in development environment?
- High Performance PHP
- PHP eAccelerator and real-time data
- Stacking caching engines
- Why doesn't eAccelerator cache to harddrive?
- Invalid opcode 153/1/8 when using anonymous function
- PHP eAccelerator include_path issue
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
For the most part, yes. If your data set, however, exceeds what can normally fit into RAM (single node), memcached scales better than Redis since most memcached client libraries support consistent hashing that distribute data across a group of memcached nodes, so the aggregate total of RAM from all nodes becomes your total data set capacity; simply add more memcached nodes to increase capacity.
You can shard (horizontally scale) with Redis to support a larger data set, but choices to do so are limited. Twitter developed twemproxy to shard redis keys across of group of redis nodes; while Redis Cluster is still a work in progress, twemproxy is the recommended approach to scale redis.
So use one or the other; you don't need both, but in either case, the web/app server is typically the client to memcached/redis.
Varnish is a reverse-caching proxy that resides in front of your app/web server. It caches entire rendered pages and greatly reduces load on your app server. It's usually the entry point (not counting load-balancers) in a typical web stack.
I don't have experience with eAccelerator, but based on quick research, it's not mutually exclusive with Varnish. A typical stack may include varnish talking to PHP/eAccelerator or APC (check that out too). Also, you may want to consider adding nginx to the mix, see this.
Hope that helps