Skip to content

DOC-6831 Document go-redis client-side caching [PARKED]#3613

Open
andy-stark-redis wants to merge 1 commit into
mainfrom
DOC-6831-document-go-redis-client-side-caching-pr-3851
Open

DOC-6831 Document go-redis client-side caching [PARKED]#3613
andy-stark-redis wants to merge 1 commit into
mainfrom
DOC-6831-document-go-redis-client-side-caching-pr-3851

Conversation

@andy-stark-redis

@andy-stark-redis andy-stark-redis commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

Documents the multi-strategy client-side caching (CSC) being added to go-redis
in redis/go-redis#3851. Adds a
Connect using client-side caching section to the go-redis connect page and
registers go-redis in the CSC introduction page (support table + relatedPages).

The section covers enabling CSC via ClientSideCacheConfig on a RESP3 client,
the three ClientSideCacheStrategy options (SharedTracking / Broadcast /
PerConnection), the tuning options (MaxEntries, MaxMemoryBytes,
DrainInterval, MaxStaleness), and monitoring via CSCStats.

Warning

Do not merge yet. These docs are written against the unmerged upstream
PR redis/go-redis#3851. The API
names, defaults, and the minimum go-redis version are not final. The go-redis
version appears as a v9.…TBD placeholder in two places. Merge only after the
CSC stack lands in a tagged go-redis release — run /pickup 3851's reconcile
first.

Park manifest

Ticket: DOC-6831
Parked at: 2026-07-10
Trigger to pick up: redis/go-redis#3851 is merged into a released (tagged) version of go-redis. NB #3851's base is the feature branch csc-standalone-connection-support, not master, so "merged" means the whole CSC stack has reached master and been tagged — not just #3851 merging into its base.
Labels: parked, do not merge yet

Pinned sources (state observed at park time)

Source State @ park Re-fetch
redis/go-redis#3851 — "feat(csc): multi-strategy client-side caching" state: open, merged: false, head SHA: 5cfc175ebdb2819c0cb71254df00f8a5201f30b5, base: csc-standalone-connection-support, milestone: none, updated: 2026-07-08 gh api repos/redis/go-redis/pulls/3851 --jq '{state, merged, head_sha: .head.sha, base: .base.ref, milestone: .milestone.title, updated_at}'
docs/csc-strategy-guide.md @ head SHA above (upstream design guide the section condenses) present on branch csc-multi-strategy gh api "repos/redis/go-redis/contents/docs/csc-strategy-guide.md?ref=csc-multi-strategy" --jq .content | base64 -d

Observed shape the page assumes — confidence: LOW

Written against an unmerged diff; exported names and defaults may change before release.

  • Enable switch: Options.ClientSideCacheConfig *ClientSideCacheConfig (non-nil enables CSC); alternatively an explicit Options.ClientSideCache Cache. Requires Protocol: 3.
  • Strategy: Options.ClientSideCacheStrategy CSCStrategy; values CSCStrategySharedTracking (default/zero), CSCStrategyBroadcast, CSCStrategyPerConnection.
  • ClientSideCacheConfig fields: MaxEntries (default 10000 when both limits unlimited), MaxMemoryBytes, DrainInterval (default 5ms, floor 1ms; SharedTracking only), MaxStaleness.
  • Observability: (*Client).CSCStats() (hits, misses uint64); process-wide redis.CommandStats(), redis.CacheAdmissionRejects(), redis.RESPInvalidationBytesRead().
  • Constraints: RESP3 only (RESP2 silently no-ops); logical DB 0 only (warns otherwise); SORT_RO … BY/GET excluded from caching.

Re-check checklist

  • (highest risk) Fill the go-redis version — replace the v9.<!-- DOC-6831: set on merge -->TBD placeholder in both content/develop/clients/go/connect.md (section note) and content/develop/clients/client-side-caching.md (support table).
  • (highest risk) Confirm base csc-standalone-connection-support merged to master and the CSC stack is in a tagged release before treating the trigger as fired.
  • Verify final exported names against merged source: ClientSideCacheConfig, ClientSideCache, ClientSideCacheStrategy, CSCStrategySharedTracking/Broadcast/PerConnection, (*Client).CSCStats, and the three package-level stats funcs.
  • Verify ClientSideCacheConfig field names and defaults survive: MaxEntries (10000), MaxMemoryBytes, DrainInterval (5ms default / 1ms floor), MaxStaleness.
  • Confirm the RESP3-only, DB-0-only, and RESP2-no-op behaviours are still accurate.
  • Confirm the explicit-ClientSideCache behaviour per strategy (honoured by SharedTracking/Broadcast; ignored by PerConnection with a warning) is unchanged.
  • Remove the "not yet released / subject to change" warning from the section note once released.
  • Consider whether the condensed strategy treatment needs expanding once the upstream docs/csc-strategy-guide.md is finalized.

On pickup, then

When the trigger fires, run /pickup 3851. It reconciles the docs against the settled source and takes the PR through the normal /reflect/finalize pipeline. The do not merge yet guard holds until /finalize completes.


Note

Low Risk
Documentation-only changes with no runtime impact; merge is gated on upstream API finalization and version placeholders.

Overview
Adds go-redis to the client-side caching (CSC) docs ahead of the upstream feature in go-redis#3851.

The CSC introduction page now links to the go connect guide and lists go-redis in the support table with a v9.…TBD version placeholder. The go Connect page gains a full Connect using client-side caching section: enable via ClientSideCacheConfig on Protocol: 3, the three ClientSideCacheStrategy modes (SharedTracking, Broadcast, PerConnection), tuning fields, CSCStats() / package-level metrics, and notes on RESP3, DB 0, and custom ClientSideCache behavior.

Docs are explicitly marked not yet released and should not merge until CSC ships in a tagged go-redis release and placeholders are reconciled.

Reviewed by Cursor Bugbot for commit 396986f. Bugbot is set up for automated code reviews on this repo. Configure here.

@andy-stark-redis andy-stark-redis added do not merge yet parked PR speculatively added based on pre-release info. Check validity when release goes ahead. labels Jul 10, 2026
@github-actions

github-actions Bot commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

DOC-6831

@andy-stark-redis andy-stark-redis self-assigned this Jul 10, 2026
@andy-stark-redis andy-stark-redis force-pushed the DOC-6831-document-go-redis-client-side-caching-pr-3851 branch from 240613e to f41d88c Compare July 10, 2026 14:07
Add a "Connect using client-side caching" section to the go-redis
connect page covering the multi-strategy CSC being added in
redis/go-redis#3851: enabling via ClientSideCacheConfig on a RESP3
client, the three ClientSideCacheStrategy options (SharedTracking
default, Broadcast, PerConnection), the tuning options (MaxEntries,
MaxMemoryBytes, DrainInterval, MaxStaleness), and monitoring via
CSCStats plus the process-wide stats functions. Register go-redis in
the support table and relatedPages of the CSC introduction page.

Written against the unmerged upstream PR, so the section carries a
pre-release warning and the version is a TBD placeholder. Parked
pending the upstream merge and release.

Experience: Rejected /park's page-level bannerText in favour of a section-scoped {{< note >}} warning — the CSC section lives in an otherwise-released Connect page, so a page banner would wrongly flag basic/TLS/cluster/SCH as unreleased. Don't "correct" the missing bannerText on pickup; the section-scoped warning is intentional.
Recheck: fill go-redis version once #3851 merges and is tagged (connect.md note + client-side-caching.md support table both use a "v9.<!-- DOC-6831: set on merge -->TBD" placeholder)
Recheck: confirm final exported names against merged source — ClientSideCacheConfig, ClientSideCacheStrategy, CSCStrategy{SharedTracking,Broadcast,PerConnection}, ClientSideCacheConfig fields, (*Client).CSCStats, redis.CommandStats/CacheAdmissionRejects/RESPInvalidationBytesRead
Recheck: verify DrainInterval default (5ms) / floor (1ms) and MaxEntries default (10000) survive to release
Recheck: base of #3851 is the feature branch csc-standalone-connection-support, not master — confirm the whole CSC stack lands on master before treating the trigger as fired
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@andy-stark-redis andy-stark-redis force-pushed the DOC-6831-document-go-redis-client-side-caching-pr-3851 branch from f41d88c to 396986f Compare July 10, 2026 14:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do not merge yet parked PR speculatively added based on pre-release info. Check validity when release goes ahead.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant