57 lines
1.3 KiB
Markdown
57 lines
1.3 KiB
Markdown
# 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]
|
|
Port = 18080 # 如果 8080 被占用,可调整端口
|
|
|
|
[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
|
|
```
|