Redis作为当前最流行的内存数据库之一,其6.2.6版本在性能优化和功能完善方面都有显著提升。本文将详细介绍从零开始完成Redis 6.2.6的下载和安装全过程,包含Linux和Windows双平台的实操方案。
提示:生产环境建议优先选择Linux系统部署Redis,Windows版本主要用于开发和测试场景。
在开始安装前,需要确认系统满足以下基本要求:
验证Linux系统gcc版本的命令:
bash复制gcc --version
# 若未安装可通过以下命令安装(CentOS示例):
sudo yum install -y gcc make
推荐通过官方渠道获取稳定版本源码:
bash复制wget https://download.redis.io/releases/redis-6.2.6.tar.gz
# 验证文件完整性
echo "5b2b8b7a50111ef395bf1c1d5be11e6e167ac018125055daa8b5c2317ae131ab redis-6.2.6.tar.gz" | sha256sum -c
若校验失败,可能下载过程中出现网络问题,建议更换镜像源重试。国内用户可以使用以下镜像加速下载:
bash复制wget http://mirrors.aliyun.com/redis/redis-6.2.6.tar.gz
解压并进入源码目录:
bash复制tar xzf redis-6.2.6.tar.gz
cd redis-6.2.6
编译关键步骤解析:
基础编译(默认安装到/usr/local/bin):
bash复制make
测试编译结果(可选但推荐):
bash复制make test
安装到系统目录:
bash复制sudo make install
重要:生产环境建议使用以下优化编译参数:
bash复制make BUILD_TLS=yes USE_SYSTEMD=yes
现代Linux系统推荐使用systemd管理Redis服务:
创建专用用户和目录:
bash复制sudo useradd -r -s /bin/false redis
sudo mkdir /var/lib/redis
sudo chown redis:redis /var/lib/redis
生成配置文件:
bash复制sudo mkdir /etc/redis
sudo cp redis.conf /etc/redis/6379.conf
创建systemd单元文件(/etc/systemd/system/redis.service):
ini复制[Unit]
Description=Redis In-Memory Data Store
After=network.target
[Service]
User=redis
Group=redis
ExecStart=/usr/local/bin/redis-server /etc/redis/6379.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always
[Install]
WantedBy=multi-user.target
启动并验证服务:
bash复制sudo systemctl daemon-reload
sudo systemctl start redis
sudo systemctl enable redis
redis-cli ping # 应返回"PONG"
Redis 6.2开始提供官方Windows版本,但有以下限制:
安装步骤:
下载微软移植版:
powershell复制Invoke-WebRequest -Uri "https://github.com/microsoftarchive/redis/releases/download/win-6.2.6/Redis-x64-6.2.6.zip" -OutFile "Redis-x64-6.2.6.zip"
解压到指定目录(建议路径不含空格和中文):
powershell复制Expand-Archive -Path "Redis-x64-6.2.6.zip" -DestinationPath "C:\Redis"
注册为系统服务(管理员权限运行):
powershell复制cd C:\Redis
.\redis-server --service-install redis.windows.conf --loglevel verbose
对于Windows 10/11用户,更推荐通过WSL2安装原生Linux版本:
启用WSL功能:
powershell复制wsl --install
安装Ubuntu发行版:
powershell复制wsl --install -d Ubuntu
在WSL中按照前文Linux安装流程操作
修改配置文件关键参数(/etc/redis/6379.conf):
conf复制bind 127.0.0.1 # 限制只监听本地
protected-mode yes
requirepass yourStrongPassword # 设置访问密码
rename-command FLUSHDB "" # 禁用危险命令
根据服务器配置调整以下参数:
conf复制maxmemory 4gb # 设置为物理内存的3/4
maxmemory-policy allkeys-lru
tcp-backlog 511
timeout 300
tcp-keepalive 300
注意:修改配置后需要重启服务生效:
bash复制sudo systemctl restart redis
报错:jemalloc/jemalloc.h: No such file or directory
解决方案:
bash复制make MALLOC=libc
报错:server.c:xxxx:xx: error: 'xxxxxxxx' has no member named 'xxxx'
通常是gcc版本过低导致,需要升级编译器:
bash复制sudo yum install centos-release-scl
sudo yum install devtoolset-9
scl enable devtoolset-9 bash
Redis无法启动:端口被占用
检查并释放6379端口:
bash复制ss -tulnp | grep 6379
kill -9 <PID>
连接超时或拒绝
检查以下配置项:
bash复制sudo firewall-cmd --add-port=6379/tcp --permanent
sudo firewall-cmd --reload
执行以下命令验证安装是否成功:
bash复制redis-cli --version
redis-server --version
# 交互测试
redis-cli
127.0.0.1:6379> AUTH yourpassword
OK
127.0.0.1:6379> SET test "安装成功"
OK
127.0.0.1:6379> GET test
我在实际部署中发现,编译时添加DEBUG=no参数可以生成更优化的二进制文件:
bash复制make DEBUG=no
对于需要TLS加密的场景,务必在编译时启用:
bash复制make BUILD_TLS=yes