vault backup: 2026-05-25 20:51:57
This commit is contained in:
+35
-9
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user