The Heroku Redis Maxmemory Policy
Heroku offers a great Redis addon, which provides 25MB of memory for free.
This amount of storage can be easily filled with just a few thousands items, depending on what you’re storing.
Heroku has a configuration option called maxmemory-policy that determines how the system will behave when the Redis database memory is filled.
By default this property is set to noeviction, which means Redis will raise an error when trying to store more data.
This is done so you realize what is happening, and once you find out that you can change this behavior, it’s time to determine how.
The various behaviors are provided by Redis itself, and they are:
noeviction: return errors when the memory limit was reached and the client is trying to execute commands that could result in more memory to be used (most write commands, but DEL and a few more exceptions).allkeys-lru: evict keys by trying to remove the less recently used (LRU) keys first, in order to make space for the new data added.volatile-lru: evict keys by trying to remove the less recently used (LRU) keys first, but only among keys that have an expire set, in order to make space for the new data added.allkeys-random: evict keys randomly in order to make space for the new data added.volatile-random: evict keys randomly in order to make space for the new data added, but only evict keys with an expire set.volatile-ttl: evict keys with an expire set, and try to evict keys with a shorter time to live (TTL) first, in order to make space for the new data added.
It’s up to you to find the best case for your needs. Once you do have a candidate, you can apply the change using the Heroku CLI, for example:
heroku redis:maxmemory YOUR_REDIS_INSTANCE_NAME --policy volatile-lru download all my books for free
- javascript handbook
- typescript handbook
- css handbook
- node.js handbook
- astro handbook
- html handbook
- next.js pages router handbook
- alpine.js handbook
- htmx handbook
- react handbook
- sql handbook
- git cheat sheet
- laravel handbook
- express handbook
- swift handbook
- go handbook
- php handbook
- python handbook
- cli handbook
- c handbook
subscribe to my newsletter to get them
Terms: by subscribing to the newsletter you agree the following terms and conditions and privacy policy. The aim of the newsletter is to keep you up to date about new tutorials, new book releases or courses organized by Flavio. If you wish to unsubscribe from the newsletter, you can click the unsubscribe link that's present at the bottom of each email, anytime. I will not communicate/spread/publish or otherwise give away your address. Your email address is the only personal information collected, and it's only collected for the primary purpose of keeping you informed through the newsletter. It's stored in a secure server based in the EU. You can contact Flavio by emailing flavio@flaviocopes.com. These terms and conditions are governed by the laws in force in Italy and you unconditionally submit to the jurisdiction of the courts of Italy.