# Memory Limits और Eviction Policies — Redis Fundamentals: Caching, Data Structures और Persistence

Source: https://www.geekswithgeeks.com/hi/redis/redis-eviction

> 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 पर सेट करें।

```bash
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 के साथ रखें।

त्वरित जाँच

**Quiz:** कौन-सी policy पूरे keyspace में सबसे कम हाल में उपयोग हुई keys evict करती है?

- [ ] noeviction
- [x] allkeys-lru
- [ ] volatile-ttl
- [ ] allkeys-random

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