daric93 opened a new pull request, #13760:
URL: https://github.com/apache/apisix/pull/13760

   ### Description
   
   [Valkey](https://valkey.io/) is a Linux Foundation, BSD-licensed fork of 
Redis that is protocol (RESP) compatible. APISIX's redis-backed plugins 
(`limit-count`, `limit-req`, `limit-conn`, `graphql-limit-count`, 
`ai-rate-limiting`, `ai-cache` exact-match layer, and `openid-connect` session 
storage) therefore already work against Valkey unmodified — and users already 
run this in production. Until now the repository had no mention of Valkey in 
docs, tests, or CI, so there was no official signal that this combination is 
supported. This PR makes the compatibility official. **No plugin code changes — 
documentation + test infrastructure only.**
   
   **Docs** — added a "Valkey Compatibility" note to each redis-backed plugin 
doc:
   
   - `limit-count`, `limit-req`, `limit-conn`, `graphql-limit-count`, 
`ai-rate-limiting`: point the existing `redis_host` / `redis_port` / 
`redis_password` attributes at a Valkey deployment.
   - `ai-cache`: Valkey works as a drop-in for the exact (L1) layer; the note 
calls out that the semantic (L2) layer requires the RediSearch module (Redis 
Stack), which Valkey does not provide, so Valkey should be used only when 
`layers` is `["exact"]`.
   - `openid-connect`: the note references the `session.redis.*` attributes 
this Plugin actually uses (not the flat `redis_*` fields used by the limit 
plugins).
   
   Each note includes a JSON connection example.
   
   **CI** — turns "should work because RESP-compatible" into "verified in CI":
   
   - Added an `apisix_valkey` service (`valkey/valkey:8`) on host port `6381` 
to `ci/pod/docker-compose.common.yml`, placed next to the existing 
`apisix_redis` service.
   - Added `t/plugin/limit-count-valkey.t`, mirroring the non-auth subset of 
`t/plugin/limit-count-redis.t` against the Valkey service. Auth/ACL/TLS tests 
are intentionally omitted since the Valkey service is configured without a 
password (kept minimal). The file lands in the existing `t/plugin/[l-z]*.t` 
matrix group, so no new CI matrix group is needed.
   - Added port `6381` to the `test_redis` helper's default flush list so 
counters don't survive CI re-runs.
   
   #### Which issue(s) this PR fixes:
   
   Closes #13738
   
   ### Checklist
   
   - [x] I have explained the need for this PR and the problem it solves
   - [x] I have explained the changes or the new features added to this PR
   - [x] I have added tests corresponding to this change
   - [x] I have updated the documentation to reflect this change
   - [x] I have verified that this change is backward compatible (docs + test 
infrastructure only; no plugin code changed)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to