I keep reeding those articles from different sources that big sites are switching from memcache to cassandra. Coming from a mySQL background, I'll get a slight headache trying to see the pros/cons when compared to each other.
Can you help me out to learn more about this?
When you want many-to-many mappings or join tables. Cassandra doesn't support a relational schema with foreign keys and join tables. So if you want to write a lot of complex join queries, then Cassandra might not be the right database for you.
Cassandra's built-in key and row caches can provide very efficient data caching. Already, several Cassandra users who care deeply about read performance have leveraged these caching features to effectively pry dedicated caching tools such as memcached completely out of the stack.
Redis uses a single core and shows better performance than Memcached in storing small datasets when measured in terms of cores. Memcached implements a multi-threaded architecture by utilizing multiple cores. Therefore, for storing larger datasets, Memcached can perform better than Redis.
Redis is faster than Cassandra in form of big data fetching and storing especially in the case of live streaming. Redis normally maintained a disk backed in-memory database. It normally maintained master-slave architecture (as the following a line with Hadoop Architecture).
It would be silly to replace memcached as a cache with Cassandra in most situations.
What companies like Digg are doing is, replacing the database+memcached pair with Cassandra: Cassandra provides both durable storage, and an integrated, high performance cache (the "row cache"). This prevents problems like memcached being populated from an out of date slave (what Twitter calls "potential consistency") and simplifies cluster management.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With