Optimize memory usage of Redis instance

redis redis-cli memory

Sometimes Redis keys can increase the memory consumption for our Redis instances. Usually, we should prefer descriptive keys while using Redis, but if we have a very big dataset with millions of long keys then these keys will take a lot of money from our pocket.

Use Smaller Keys with Redis

If the application was well written, switching to smaller keys usually involves updating a few configurations in the application code.

First we will have to identify all the big keys in our Redis instance and shorten it by removing extra characters from it.

The easyest way to find what keys are very big in our application is to run the command redis-cli --bigkeys. This command will scan a certain set of records and return the big keys from that set.

Advantages

For example:

Let’s say we have 100,000,000 keys named like this:

some-descriptive-large-keyname (30 characters)

If we change the key name into a smaller one we will have something like this:

some-keyname (12 characters)

Just by doing this we save 16 chars which means 16 bytes. If we make a small calculation with this values we end up by saving 100,000,000*16 = 1.6GB of RAM!

Disadvantages

Because we made the key smaller it’s possible that it becomes less descriptive, but in some situations this isn’t a very big issue comparing to your cost savings. Also you could have a readable mapping for each key in your source code and this issue would be solved.


If you liked this post, you can share it on Twitter. Also you can follow me on Github or endorse me on LinkedIn.