vault backup: 2026-05-25 20:51:57

This commit is contained in:
hhs
2026-05-25 20:51:57 +08:00
parent 383d98a4dc
commit 7e4671fe25
8 changed files with 1673 additions and 43 deletions
+35 -9
View File
@@ -66,6 +66,8 @@ redis-server --version # 确认版本
### Docker(推荐本地开发)
将以下内容保存为 `docker-compose.yml`:
```yaml
version: "3.9"
services:
@@ -88,16 +90,40 @@ volumes:
redis-data:
```
**启动、验证、连接一气呵成:**
```bash
# 1. 在 docker-compose.yml 同目录下启动(-d 后台运行)
docker compose up -d
# 2. 查看容器状态和端口映射
docker compose ps
# NAME STATUS PORTS
# redis-dev Up 30s 0.0.0.0:6379->6379/tcp
# 3. 通过容器内 redis-cli 验证连通性
docker exec redis-dev redis-cli -a changeme ping
# 输出: PONG
# 4. 本地 redis-cli 连接(如果本机已安装)
redis-cli -h 127.0.0.1 -p 6379 -a changeme
```
> [!TIP]
> - 通过 `${REDIS_PASSWORD:-changeme}` 引用环境变量,避免在仓库中硬编码真实密码。
> - 通过 `${REDIS_PASSWORD:-changeme}` 引用环境变量,避免在仓库中硬编码真实密码。启动时可 `REDIS_PASSWORD=my-secret docker compose up -d` 覆盖默认值。
> - 开发环境建议限制 `maxmemory`,防止占满本机内存。
> - 生产环境不要使用 `redis:latest` 标签,锁定具体版本号以避免未知变更。
> [!EXAMPLE] 如何快速连接带密码的 Redis?
> [!QUESTION] 为什么用 `docker exec` 而不是直接 `redis-cli`?
>
> `docker exec` 不依赖本机是否安装了 redis-cli,任何装了 Docker 的机器都能直接执行——在 CI/CD 或同事的机器上尤其方便。而本机 `redis-cli` 的好处是支持命令历史补全和更丰富的交互体验。
> [!EXAMPLE] 常用运维命令速查
> ```bash
> export REDIS_PASSWORD="your-strong-pass"
> redis-cli -a "$REDIS_PASSWORD" ping
> # 输出: PONG
> docker compose logs -f redis # 实时查看日志
> docker compose stop redis # 停止容器(保留数据卷)
> docker compose down -v # 停止并删除数据卷(慎用,清空数据)
> docker exec redis-dev redis-cli -a changeme INFO memory # 查看内存使用
> ```
## 关键配置项
@@ -183,10 +209,10 @@ sysctl -p # 立即生效
```mermaid
flowchart LR
A[客户端连接请求] -->|SYN| B[TCP 半连接队列\nsomaxconn]
B -->|三次握手完成| C[TCP 全连接队列\ntcp-backlog]
C --> D[Redis accept()]
D --> E[分叉持久化\novercommit_memory]
A[客户端连接请求] -->|SYN| B["TCP 半连接队列<br>somaxconn"]
B -->|三次握手完成| C["TCP 全连接队列<br>tcp-backlog"]
C --> D[Redis accept]
D --> E["分叉持久化<br>overcommit_memory"]
style A fill:#e1f5fe
style C fill:#fff3e0