Yes, Redis uses RAM as its primary storage for data. It is an in-memory data structure store that keeps the dataset entirely in memory, which is one of the reasons it can achieve high performance and low-latency when accessing data.
The primary data structures supported by Redis are Strings, Hashes, Lists, Sets, and Sorted Sets. These data structures are stored in the server's RAM, making read and write operations exceptionally fast.
However, Redis also provides options to persist data on disk periodically or when certain conditions are met. This is useful for ensuring data durability and recovering from failures.
To demonstrate how Redis stores data in memory, let's look at a simple example using the Python
redis library (you can install it with
pip install redis):
import redis # Connect to a local Redis instance r = redis.Redis(host='localhost', port=6379, db=0) # Set a key-value pair in Redis r.set('my_key', 'Hello, World!') # Retrieve the value stored at 'my_key' value = r.get('my_key') print(value) # Output: b'Hello, World!'
In this example, the key-value pair ('my_key', 'Hello, World!') is stored in the server's RAM, enabling fast access to the data.
Dragonfly is fully compatible with the Redis ecosystem and requires no code changes to implement.