For example, to set the maximum memory to 1GB
, (or 102410241024 bytes) you can use the following configuration:
You can also specify a policy for how Redis should handle the situation when the maximum memory limit is reached. This is done using the maxmemory-policy
directive, which can take one of the following values:
noeviction: Redis will return an error when the maximum memory limit is reached and a new key needs to be added. allkeys-lru: Redis will remove the least recently used keys in order to make space for new keys. volatile-lru: Redis will remove the least recently used keys among keys with an expire set in order to make space for new keys. allkeys-random: Redis will randomly select keys to remove in order to make space for new keys. volatile-random: Redis will randomly select keys with an expire set to remove in order to make space for new keys. volatile-ttl: Redis will remove keys with the shortest time to live in order to make space for new keys.
For example, to set the maxmemory-policy
to allkeys-lru
, you can use the following configuration:
Note that the maxmemory and maxmemory-policy directives must be set in the Redis configuration file (redis.conf) and cannot be set using the CONFIG SET command at runtime. You will need to restart Redis for the changes to take effect. It’s also worth noting that Redis will automatically try to free memory when it is running out of available memory, by releasing memory used by the least recently used keys. However, this process is limited by the maxmemory-samples directive, which determines the number of keys that Redis will sample in order to determine the keys to be removed. By default, this value is set to 3, so Redis will only sample 3 keys in order to determine the keys to be removed. You can adjust this value if needed by using the maxmemory-samples directive in the Redis configuration file.