In this article, we will talk about Redis (REmote DIctionary Server). Redis is an open source, in-memory, key value store. It is also referred to as a dictionary server as the key values are not only strings, but also hashes, sets, lists, and sorted sets.
Redis looks similar to Memcached but there are some differences between them.
In Memory: Redis stores the key values in primary memory for quick access of read writes.
Replication: Redis supports for master-slave replication. The data access can be done from the slave and the writes can be performed from the master. The replication provides scalability and availability. As any one of the slaves gets failed, the other slave provides data access.
Data Structures: Redis stores not only strings but also lists, sets, hashes and sorted sets.
Virtual memory: Redis uses RAM for in memory storage. But, during the shortage of RAM, it uses virtual memory to keep the data.
Pub/Sub Model: Redis creates Publish and Subscribe channels where the Redis clients can subscribe to any channel to consume the data and any subscribed client to a channel can publish the data.
Data Persistence: Redis persist the in-memory data to a file system on regular intervals. During the failure of Redis node, the data can be restored from Redis Data file.
There are lots of sites with high traffic that are already using Redis. Some of them are given below.
- Stack Overflow
- Plugin support for Magento