By default, Upstash will reject write operations once the maximum data size limit has been reached. However, if you are utilizing Upstash as a cache, you have the option to enable eviction. Enabling eviction allows older data to be automatically removed from the cache when the maximum size limit is reached. This ensures that the cache remains within the allocated size and can make room for new data to be stored. Enabling eviction is particularly useful when the cache is intended to store frequently changing or temporary data, allowing the cache to adapt to evolving data needs while maintaining optimal performance.
You can enable eviction by checking Eviction checkbox while creating a new database:
Or for an existing database by clicking Enable in Configuration/Eviction box in the database details page:
Upstash currently uses a single eviction algorithm, called optimistic-volatile, which is a combination of volatile-random and allkeys-random eviction policies available in the original Redis.
Initially, Upstash employs random sampling to select keys for eviction, giving priority to keys marked with a TTL (expire field). If there is a shortage of volatile keys or they are insufficient to create space, additional non-volatile keys are randomly chosen for eviction. In future releases, Upstash plans to introduce more eviction policies, offering users a wider range of options to customize the eviction behavior according to their specific needs.