Stick tables, more tables or a better option

Hi all,

I have a bit of an issue, is there a way to have a bigger stick table (longer expiry) and then deny based on matches in a specific time window… rather than me needing multiple tables for 1 minute, 5 minute, 1 hour time windows etc.

Else, if there isn’t and more stick tables is the solution, are there any packages available that allow a larger number of stick tables so that I don’t have to maintain a custom build from source?

Any help would be awesome,


I feel like I’m just the lazy idiot and haven’t read enough yet, seems the way I’m using stick tables is outdated and can probably be optimised… might start there first.

If anyone can provide some info regarding to some pretty advanced rate-limited solutions and examples of stick tables being used in action, I’d be super keen to see them.

Seems that while I’ve learnt a-lot I’m still back to banging my head on this one…

Is there a way to have multiple time period limits but driven from a single stick-table?

Ie. rather than using the expiry of the table, use a lookup from the table data based on entries that fall within (cur_time-60seconds)->cur_time…

Hi all,

I guess I want to bump this one again… since I haven’t got anywhere.

My simple question would be, is there a way to use the same stick-table twice for basic time-based rate-limiting?

Eg. have a stick-table that lasts for 24 hrs, but then query multiple time periods against it, somewhat like: if number of request by IP in the last 1 minute > 10… kick AND if number of request by IP in the last 10 hours > 1000 kick…
BUT, using the same stick-table (rather than needing two separate 1min and 10 hour tables).