title: Is there any other way to evict keys aggresively with expired ttl in Redis
body: <p>My usecase: 
  I am using Redis for storing high amount of data.
  In 1 sec i write around 24k keys in redis with ttl as 30 minutes and i want the keys to be deleted after ttl has expired.
  The current redis implementation of evicting keys is it works in tasks and each task pick 20 random keys and see if keys have expired ttl then it deletes those keys and redis recommends not more than 100 such tasks to be used. So if i se hz(no of tasks to 100) then Redis will be able to clear tke keys max @ 2000 keys/ sec which is too less for me as my insertion rate is very high which eventually results in out of memory exception when memory gets full.</p>
  
  <p>Alternative i have is : 
  1/ Hit Random Keys, or keys which we know have expired, this will initiate delete in Redis
  2/ Set eviction policy when maxmemory is reached. This will aggressively delete redis keys, when max memory is reached.
  3/ Set hz (Frequency), to some higher value. This will initiate more tasks for purging expired keys per sec.
  1/ Doesn't seem feasible.
  For 2/ &amp; 3/
  Based on the current cache timer of 30 minutes, and given insertion rate, we can use
  maxmemory 12*1024*1024
  maxmemory-samples 10
  maxmemory-policy volatile-ttl
  hz 100</p>
  
  <p>But using 2 would mean all the time redis will be performing the deletion of keys and then insertion,as i am assuming in my case memory will always be equal to 12 GB</p>
  
  <p>So is it good to use this strategy, or we should write our own keys eviction service over Redis?</p>