source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. (At least till version 7.3. New license from 7.4; Hi Valkey!!) • Memcached is Free & open source, high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load.
Yes Yes Data partitioning Yes Yes Support for a broad set of programming languages Yes Yes Advanced data structures - Yes Multithreaded architecture Yes - Snapshots - Yes Replication - Yes Transactions - Yes Pub/Sub - Yes Lua scripting - Yes Geospatial support - Yes
• Lists (basically linked list sorted insertion order) • Sorted insertion order • Implement stacks / Queues • Queue Management for Background Tasks (Sidekiq/Celery Anyone)? • Sets (Unique unsorted string elements) • Java Hashsets/Python sets → add, remove, and test for existence in O(1). • Track unique IPs / Set of users for role / union / Intersection
having a score) • Leaderboards, Rate limiters • Hashes (similar to ruby or python hashes) • Bitmaps (or bit arrays, RBAC Anyone?, Who has subscribed?) • HyperLogLogs (estimate cardinality of set [Probablistic!!] • Less than 1% error rate) • Streams (append only collection of map-like entries)
• Multi AZ with replication groups turning AOF off • Cluster mode enabled or disabled • Need at least 2 replicas in different AZ • Be careful about the retention periods according to your use case
as mature as other DB clusters •Not all commands & features available on single Redis work on partitions. Eg: MSET •Scale up and down might become tricky
class of machines should you use for which features? •AMD vs Intel vs Gravitron (spoiler AMD will not be happy) •Have you considered latency due to swapping? •You do realize that your persistence strategy can increase latency. Right?