Adding new shards didn't increase the total available memory


Hi there!

I'm trying to horizontally scale a redis cluster running on elasticache.

I originally had 2 shards, with one replica each (4 nodes in total), running on m3.micro, and before doing any change, I ran INFO MEMORY via redis-cli, and maxmemory_human was at 416.25M.

I tried to add a third shard, but the result of maxmemory_human remains at 416.25M. Am I missing something here? Does maxmemory_human represent the entire memory space available for storing data in redis?

Thanks in advance!

asked 4 years ago1017 views
1 Answer

Hi Digui,

Thanks so much for reaching out to the AWS Forum.

In this example, maxmemory_human refers to the total memory available to the current connected node. Each shard will show the available memory on the individual node. For example, if I have a t3.micro in cluster-mode-enabled. Each shard in this configuration will show 384.00M in memory which is the total instance type memory, less the reserved-memory (25% default).

A better way to understand the total memory available in your cluster is to take the number of shards ** maxmemory_human. In my example, I have 2 shards, so the total memory available is 384M ** 2 or 768M.

You can also monitor the usage on the node using a new ElastiCache metric called DatabaseMemoryUsagePercentage. You can view more here as well:

You can also find more details on the memory available to ElastiCache based on this support article:


answered 4 years ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions