पाठ 14 / 20

Memory Limits और Eviction Policies

maxmemory से Redis memory सीमित करें और allkeys-lru जैसी eviction policy चुनें ताकि भरा cache धीरे से degrade हो।

maxmemory और eviction

Redis RAM में रहता है, इसलिए maxmemory से सीमा तय करें। सीमा पूरी होने पर maxmemory-policy तय करती है कि क्या होगा: noeviction writes reject करती है, allkeys-lru सबसे कम हाल में उपयोग हुई keys हटाती है, और volatile-ttl सबसे जल्दी expire होने वाली keys हटाती है।

सीमा और policy redis.conf में या runtime पर सेट करें।

redis-cli CONFIG SET maxmemory 256mb
redis-cli CONFIG SET maxmemory-policy allkeys-lru
redis-cli INFO memory

Pure cache के लिए allkeys-lru उपयोग करें। यदि Redis में queues या sessions जैसा वह data भी है जिसे दोबारा नहीं बनाया जा सकता, तो उसे evict न होने दें और memory headroom के साथ रखें।

त्वरित जाँच

त्वरित जाँच: कौन-सी policy पूरे keyspace में सबसे कम हाल में उपयोग हुई keys evict करती है?

  • noeviction
  • allkeys-lru
  • volatile-ttl
  • allkeys-random
Answer

allkeys-lru — maxmemory पूरी होने पर allkeys-lru सबसे कम हाल में उपयोग हुई keys हटाती है।