wsl中安装redis集群

在 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 的最新特性)。

  1. 下载源码:

    Bash

    cd ~
    wget https://github.com/redis/redis/archive/unstable.tar.gz -O redis-8-unstable.tar.gz
    
  2. 解压并编译:

    Bash

    tar xzf redis-8-unstable.tar.gz
    cd redis-unstable
    
    # 开始编译 (根据电脑性能,这可能需要 2-5 分钟)
    make
    
  3. 安装到系统路径(可选但推荐):

    这会把 redis-server 和 redis-cli 复制到 /usr/local/bin,方便直接调用。

    Bash

    sudo make install
    
  4. 验证版本:

    Bash

    redis-server -v
    

    输出应该包含 Redis server v=255.255.255 或者明确的 8.x 版本号,表明这是最新的开发版。


第三步:自动化搭建集群(脚本方式)

为了快速搭建 3主3从 的集群,我们创建一个脚本来自动生成目录和配置文件。

  1. 创建一个工作目录:

    Bash

    mkdir -p ~/redis-cluster
    cd ~/redis-cluster
    
  2. 创建配置脚本 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
    
  3. 创建启动脚本 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
    
  4. 运行脚本:

    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 即表示成功。


第五步:验证与使用

  1. 检查进程状态:

    Bash

    ps -ef | grep redis
    

    你应该能看到 6 个进程。

  2. 连接测试:

    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 (宿主机) 中连接:

  1. 连接地址: 在 Windows 下的客户端(如 Navicat, Java 代码, Python 代码)中,直接连接 127.0.0.1:7001 即可。WSL2 会自动处理 localhost 的端口转发。

  2. 集群感知: 你的 Redis 客户端必须支持“集群模式”。

  3. 重启问题: WSL 关闭后,Redis 进程会被杀死。下次启动 WSL 时,你需要重新运行 ./start_cluster.sh(不需要重新运行 init 或 create)。

如果需要停止集群,可以使用以下命令一次性杀掉所有 Redis 进程:

pkill redis-server

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值