docs: add rate limit redis smoke test
This commit is contained in:
53
docs/rate_limit_redis.md
Normal file
53
docs/rate_limit_redis.md
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
# Rate Limit Redis Smoke Test
|
||||||
|
|
||||||
|
This note records the local Redis setup and a quick smoke test for rate-limit storage.
|
||||||
|
|
||||||
|
## Docker setup (local)
|
||||||
|
|
||||||
|
Image source used in this environment:
|
||||||
|
- `docker.hub.ipao.vip/redis:7`
|
||||||
|
|
||||||
|
Start container (password enabled):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo -n docker run -d --name quyun-redis -p 6379:6379 docker.hub.ipao.vip/redis:7 \
|
||||||
|
redis-server --requirepass testpass
|
||||||
|
```
|
||||||
|
|
||||||
|
## Config sample
|
||||||
|
|
||||||
|
```toml
|
||||||
|
[Http.RateLimit]
|
||||||
|
Enabled = true
|
||||||
|
Max = 120
|
||||||
|
WindowSeconds = 60
|
||||||
|
Message = "Too Many Requests"
|
||||||
|
|
||||||
|
[Http.RateLimit.Redis]
|
||||||
|
Addrs = ["127.0.0.1:6379"]
|
||||||
|
Username = ""
|
||||||
|
Password = "testpass"
|
||||||
|
DB = 2
|
||||||
|
Prefix = "rl:"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Smoke test commands
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo -n docker exec quyun-redis redis-cli ping
|
||||||
|
sudo -n docker exec quyun-redis redis-cli -a testpass ping
|
||||||
|
sudo -n docker exec quyun-redis redis-cli -a testpass -n 2 set rl:tenant:demo 1 EX 60
|
||||||
|
sudo -n docker exec quyun-redis redis-cli -a testpass -n 2 get rl:tenant:demo
|
||||||
|
sudo -n docker exec quyun-redis redis-cli -a testpass -n 0 get rl:tenant:demo
|
||||||
|
```
|
||||||
|
|
||||||
|
Expected behavior:
|
||||||
|
- First ping returns `NOAUTH Authentication required.`
|
||||||
|
- Authenticated ping returns `PONG`.
|
||||||
|
- DB 2 contains `rl:tenant:demo = 1`, DB 0 does not.
|
||||||
|
|
||||||
|
## Cleanup
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo -n docker rm -f quyun-redis
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user