Skip to main content

Memcached Vs Redis : Which one to pick ??

Memcached is a general-purpose distributed memory caching system. It is often used to speed up dynamic database-driven websites by caching data and objects in RAM to reduce the number of times an external data source (such as a database or API) must be read.
Redis is a flexible, open source and advanced key-value store. It is referred to as a “data structure server” where keys can contain strings, lists, hashes, sets and sorted sets of strings.
redis_memcached_new
The main differences between them are listed below:
Installation:
Comparing ease of Installation Redis is much easier. No dependencies required.
Memory Usage:
For simple key-value pairs memcached is more memory efficient than Redis. If you use Redis hashes, then Redis is more memory efficient.
Persistence:
If you are using Memcached then data is lost with a restart and rebuilding cache is a costly process. On the other hand, Redis can handle persistent data. By default, Redis syncs data to the disk at least every 2 seconds.
Replication:
Memcached does not supports replication. Whereas Redis supports master-slave replication. It allows slave Redis servers to be exact copies of master servers. Data from any Redis server can replicate to any number of slaves.
Storage type:
Memcached stores variables in it’s memory. It retrieve any information directly from the servers memory instead of hitting the database again. On the other hand, Redis is like a database that resides in memory. It executes (read and write) a key/value pair from its database to return the resultset and all data resides in memory.Developers are using Redis also for real-time metrics, analytics.
Read/Write Speed:
Memcached is very good to handle high traffic websites. It can read lots of information at a time and give you back at a great response time. Redis can also handle high traffic on read but also can handle heavy writes as well.
Data Structure:
Memcached uses string and integer as data structure. Everything you save can be either one or the other. With integer, the only data manipulation you can do is adding or subtracting them. If you need to save arrays or objects, you will have to serialize them first and then save them. To read them back, you will need to un-serialize.
In comparison Redis has a stronger data structures. It can handle not only strings, integer but also binary-safe strings, lists of binary-safe strings, sets of binary-safe strings and sorted sets.
Key Length:
Memcached key length has a maximum of 250 bytes, whereas Redis key length has a maximum of 2GB.
If you need advanced data structures or disk-backed persistence, you should look into Redis. On the other hand, you might want to stick to Memcached for its simplicity, reliability and speed.

Comments

Popular posts from this blog

Python Subprocess Module

Subprocess A running program is called a  process . Each process has its own system state, which includes memory, lists of open files, a program counter that keeps track of the instruction being executed, and a call stack used to hold the local variables of functions. Normally, a process executes statements one after the other in a single sequence of control flow, which is sometimes called the main thread of the process. At any given time, the program is only doing one thing. A program can create new processes using library functions such as those found in the os or subprocess modules such as  os.fork() ,  subprocess.Popen() , etc. However, these processes, known as  subprocesses , run as completely independent entities-each with their own private system state and main thread of execution. Because a subprocess is independent, it executes concurrently with the original process. That is, the process that created the subprocess can go on to work on other thing...

How communication happens across ..? (Explained from the scratch)

okay.. in this article I am going to explain how communication happens between the systems from the scratch. For this, first we need to understand the basic of network hardware in the computer system. Network hardware is the main crucial thing that makes a computer system to communicate with the other computers. The hardware that I was talking about is nothing but an NETWORK ADAPTER. Network adapter is also called network card or  network interface card (NIC). Network adapter is fixed to the hardware of the computer which consists of ports that makes the computer to connect to the network. The ports in network adapter are RJ-45 ports. RJ means Registered Jack. RJ is standardized physical network interface. The standard designs are RJ-11,RJ-45..etc. RJ-45  just looks like a port that is used by the landline telephone port. But, that is different from RJ-45 port. The port used by the telephone is RJ-11, RJ-11 is smaller than RJ-45. The cable used to connect the port is twi...

Free or Open Network Solutions

There are endless free and open source software solutions and services out there for use in the network—for small, medium, and enterprise environments. Here I’ll share a couple you might consider. Introduction There are endless free and open source software solutions and services out there for use in the network—for small, medium, and enterprise environments. You aren’t limited to Microsoft, Cisco, and other commercial giants. You can save money by using free, open source, or less expensive solutions. Here I’ll share a couple you might consider. Vyatta Enterprise-level Firewall/Router Vyatta  is a network operating system targeted for enterprise-level networks for cloud, virtual, and physical deployments. It offers the core network services: NAT, routing, DHCP, firewall, VPN, QoS, IPS, and more. It can install onto any standard x86 based system, run using VMware, Citrix XenServer, Xen and Redhat KVM hypervisor environments, or on Amazon VPC. They provide their core open so...