Repository navigation
docs: describe what the volatile-lru eviction policy actually evicts - #2606
Merged
Su (sushmangupta) merged 4 commits intoOct 14, 2026
Merged
Conversation
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Developer Docs healthcheckStatus: Completed with |
Developer Docs healthcheckStatus: Running. |
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Su (sushmangupta)
approved these changes
Oct 14, 2026
Su (sushmangupta)
deleted the
fix/docs-redis-volatile-lru-eviction-wording
branch
October 14, 2026 14:42
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
volatile-lrueviction policy as one that "only automatically deletes data that is expired" (or "carts that are expired"). That is not what the policy does: per the Redis documentation,volatile-lruevicts the least recently used keys that have an expiration (TTL) set, when the memory limit is reached. Such keys do not have to be expired.redis.mdL34 andcaches.mdL164 already say it correctly ("keeps evicting least recently used keys that have a TTL set", "it will only evict keys that have a TTL").redis.mdL53 ("a key eviction policy that will not delete data that is not expired") now says it never evicts keys without a TTL and can still evict least recently used keys that have one.Related links
Docs (at
origin/main70b7d45), changed lines:redis.md L29redis.md L53caches.md L114cart-storage.md L80increment.md L70number-ranges.md L54Docs lines that state it correctly (not changed):
redis.mdL34,caches.mdL164.Redis documentation (the semantics come from here, not from the platform source): https://redis.io/docs/latest/develop/reference/eviction/ : "
volatile-lru: Evict the least recently used keys that have an associated expiration (TTL)."; and thevolatile-xxxpolicies behave likenoevictionif no keys have an expiration.Platform context (tag
v6.7.15.1): carts are stored with a TTL (RedisCartPersister.phpL118:$options = [self::EXPIRES_IN_SECONDS => $this->expireDays * 86400];), which is whyvolatile-lrucan evict them in cart-storage.md. Also:compose.yamlL67 runs the cache service with--maxmemory-policy volatile-lfu. This is context only; this PR does not change which policy is recommended.Checklist
PageRefreferences where relevant. (Every changed sentence was compared with the Redis documentation; the pages' own correct statements were left alone.).gitbook.yamlif pages were moved, renamed, or deleted. (N/A, no page moved.).wordlist.txt(and sorted it) if spellcheck flags new legitimate terms. (No new prose words outside code spans; checked against.wordlist.txt; the docker spellcheck image could not be run locally.)Notes
main(Shopware 6.7) only. Checked against the platform tagv6.7.15.1(the latest 6.7 tag when this was written). Older versions have their own docs branches and are not touched here.session.mdL121 (allkeys-lru, "deletes the last recently used entries when Redis reaches max memory consumption") is correct. Which policy is recommended for which instance is not touched: that is the open question in the draft PR [Owner decision needed] docs: Redis maxmemory-policy recommendations contradict each other (volatile-lfu vs volatile-lru) #2590 (volatile-lruvsvolatile-lfu,guides/hosting/index.mdL25). [Owner decision needed] docs: Redis maxmemory-policy recommendations contradict each other (volatile-lfu vs volatile-lru) #2590 has no line overlap with this PR; if its owner decides to recommendvolatile-lfu, the lines changed here would be rewritten for that policy.🤖 Generated with Claude Code