在 WSL 的 Debian 发行版中安装 Redis 8.x 集群,步骤与 Ubuntu 非常相似,但由于 Debian 默认软件源策略较保守,我们需要确保编译环境的依赖安装正确。
由于 Redis 8.x 目前(截至 2024/2025)处于开发/预览或新协议阶段,Debian 的 apt 源里绝对没有,必须从源码编译。
以下是完整的操作指南:
第一步:准备编译环境
Debian 默认可能是一个最小化安装,我们需要先安装编译工具(GCC, Make 等)。
打开你的 WSL Debian 终端,执行:
Bash
sudo apt update
sudo apt install build-essential tcl pkg-config wget procps -y
注意:
procps包是为了使用pkill等命令,方便后续管理进程。
第二步:下载并编译 Redis 8.x 源码
我们将从 GitHub 下载 Redis 的 unstable 分支(通常包含 8.x 的最新特性)。
-
下载源码:
Bash
cd ~ wget https://github.com/redis/redis/archive/unstable.tar.gz -O redis-8-unstable.tar.gz -
解压并编译:
Bash
tar xzf redis-8-unstable.tar.gz cd redis-unstable # 开始编译 (根据电脑性能,这可能需要 2-5 分钟) make -
安装到系统路径(可选但推荐):
这会把 redis-server 和 redis-cli 复制到 /usr/local/bin,方便直接调用。
Bash
sudo make install -
验证版本:
Bash
redis-server -v输出应该包含
Redis server v=255.255.255或者明确的8.x版本号,表明这是最新的开发版。
第三步:自动化搭建集群(脚本方式)
为了快速搭建 3主3从 的集群,我们创建一个脚本来自动生成目录和配置文件。
-
创建一个工作目录:
Bash
mkdir -p ~/redis-cluster cd ~/redis-cluster -
创建配置脚本
init_cluster.sh:Bash
cat << 'EOF' > init_cluster.sh #!/bin/bash # 定义基础端口 START_PORT=7001 END_PORT=7006 for port in $(seq $START_PORT $END_PORT); do mkdir -p ./$port rm -f ./$port/redis.conf echo "正在生成节点 $port 的配置..." # 写入配置文件 cat << CONFIG > ./$port/redis.conf port $port bind 0.0.0.0 protected-mode no daemonize yes cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 appendonly yes dir ./$port pidfile redis.pid logfile redis.log CONFIG done echo "配置生成完毕。" EOF -
创建启动脚本
start_cluster.sh:Bash
cat << 'EOF' > start_cluster.sh #!/bin/bash for port in {7001..7006}; do echo "正在启动节点 $port..." redis-server ./$port/redis.conf done echo "所有节点已启动。" EOF -
运行脚本:
Bash
# 赋予执行权限 chmod +x init_cluster.sh start_cluster.sh # 生成配置 ./init_cluster.sh # 启动节点 ./start_cluster.sh
第四步:创建集群关联
现在 6 个 Redis 进程已经在后台运行,我们需要把它们“握手”成一个集群。
执行以下命令:
Bash
redis-cli --cluster create \
127.0.0.1:7001 \
127.0.0.1:7002 \
127.0.0.1:7003 \
127.0.0.1:7004 \
127.0.0.1:7005 \
127.0.0.1:7006 \
--cluster-replicas 1
交互提示:
-
终端会显示主从分配计划。
-
输入
yes并回车确认。 -
看到
[OK] All 16384 slots covered即表示成功。
第五步:验证与使用
-
检查进程状态:
Bash
ps -ef | grep redis你应该能看到 6 个进程。
-
连接测试:
Bash
redis-cli -c -p 7001-
-c: 启用集群模式(必须加,否则无法自动跳转节点)。 -
尝试设置一个值:
set mykey hello。如果该 key 属于其他节点的槽位,你会看到Redirected to slot [xxx] at 127.0.0.1:700x。
-
💡 重要提示:关于 WSL2 的网络
由于你是在 WSL (Debian) 中运行,而通常需要在 Windows (宿主机) 中连接:
-
连接地址: 在 Windows 下的客户端(如 Navicat, Java 代码, Python 代码)中,直接连接
127.0.0.1:7001即可。WSL2 会自动处理 localhost 的端口转发。 -
集群感知: 你的 Redis 客户端必须支持“集群模式”。
-
重启问题: WSL 关闭后,Redis 进程会被杀死。下次启动 WSL 时,你需要重新运行
./start_cluster.sh(不需要重新运行 init 或 create)。
如果需要停止集群,可以使用以下命令一次性杀掉所有 Redis 进程:
pkill redis-server

264

被折叠的 条评论
为什么被折叠?



