Limit_req_zone key cache lifetime

I’m looking for documentation or explanation for how keys expire in the
limit_req_zone. I have the basic documenations here:

A client IP address serves as a key. Note that instead of $remote_addr,
the $binary_remote_addr variable is used here.
The $binary_remote_addr variable’s size is always 4 bytes for
IPv4 addresses or 16 bytes for IPv6 addresses. The stored state always
occupies 64 bytes on 32-bit platforms and 128 bytes on 64-bit platforms.
One megabyte zone can keep about 16 thousand 64-byte states or about 8
thousand 128-byte states. If the zone storage is exhausted, the server
will
return the 503 (Service Temporarily Unavailable) error to all further
requests.

But there’s no explanation for how the key cache eventually clears
itself.
Is any available?

Hello!

On Thu, Jul 14, 2016 at 07:22:06PM +0000, Chad Hansen wrote:

return the 503 (Service Temporarily Unavailable) error to all further
requests.*

But there’s no explanation for how the key cache eventually clears itself.
Is any available?

The same page also specifies the algorithm used,
http://nginx.org/en/docs/http/ngx_http_limit_req_module.html:

: The limitation is done using the “leaky bucket” method.

See Leaky bucket - Wikipedia for further
details about the algorithm itself.

The algorithm implies that there is no need to store anything for
keys where there are no excessive requests. Such zero states are
automatically removed by the code when nginx is about to allocate
a new state.


Maxim D.
http://nginx.org/

Great, thank you!