【Redis从入门到精通】第02篇:手把手安装Redis——Win/Mac/Linux三平台实战教程
上一篇【第01篇】Redis是什么——从缓存神器到全栈数据库的进化之路下一篇【第03篇】Redis数据类型全景——String/Hash/List/Set/ZSet一锅端摘要上一篇文章我们聊了Redis是什么今天就来真的——把Redis装到你的电脑上。本文覆盖WindowsWSL2方案、MacHomebrew一键安装、Linux源码编译 包管理器双方案三大平台外加Docker快速启动和云服务接入方案。同时详解redis.conf的关键配置参数带你用redis-cli敲下人生中第一行Redis命令。无论你是Mac党、Windows党还是Linux老兵跟着这篇走15分钟内铁定跑起来。全程实操拒绝纸上谈兵。一、Mac 安装——Homebrew 一键搞定Mac 用户是用 Redis 最舒服的一群人。Homebrew 这个包管理器让安装变成一行命令。1.1 安装步骤# 第一步安装 Redisbrewinstallredis# 安装过程输出示例# Downloading https://ghcr.io/v2/homebrew/core/redis/manifests/7.2.4# Fetching redis# Pouring redis--7.2.4.ventura.bottle.tar.gz# Caveats# To start redis now and restart at login:# brew services start redis# Or, if you dont want a background service:# redis-server /opt/homebrew/etc/redis.conf# Summary# /opt/homebrew/Cellar/redis/7.2.4: 14 files, 4.2MB1.2 三种启动方式# 方式一前台启动终端关了就停redis-server# 方式二后台启动守护进程redis-server--daemonizeyes# 方式三brew services 管理推荐brew services start redis# 启动brew services stop redis# 停止brew services restart redis# 重启brew services info redis# 查看状态1.3 验证安装# 连接 Redisredis-cli# 搞个 ping-pong127.0.0.1:6379PING PONG# 看看 Redis 长啥样127.0.0.1:6379INFO server# Serverredis_version:7.2.4 redis_mode:standalone os:Darwin23.4.0 arm64...# 存个数据玩一下127.0.0.1:6379SET helloRedis从入门到精通OK127.0.0.1:6379GET helloRedis从入门到精通Mac 的 Redis 配置文件在/opt/homebrew/etc/redis.confApple Silicon或/usr/local/etc/redis.confIntel芯片。要改配置直接编辑这个文件就行。二、Linux 安装——源码编译 包管理器双方案Linux 是 Redis 的母星绝大多数生产环境的 Redis 都跑在 Linux 上。这里给两种方式新手用包管理器老手用源码编译。2.1 方案一包管理器安装新手推荐# Ubuntu / Debiansudoaptupdatesudoaptinstallredis-server-y# CentOS / RHEL (需要先启用 EPEL 源)sudoyuminstallepel-release-ysudoyuminstallredis-y# 启动sudosystemctl start redissudosystemctlenableredis# 开机自启sudosystemctl status redis# 查看状态# 连接测试redis-cli PING# PONG2.2 方案二源码编译安装老手之选源码编译可以获取最新版本还能定制编译选项。# 第一步下载源码cd/tmpwgethttps://download.redis.io/releases/redis-7.2.5.tar.gztar-xzfredis-7.2.5.tar.gzcdredis-7.2.5# 第二步编译make-j$(nproc)# -j$(nproc) 表示用所有CPU核心并行编译快得多# 编译完成后会在 src/ 目录下看到 redis-server, redis-cli 等可执行文件# 第三步验证编译结果src/redis-server--version# Redis server v7.2.5 sha00000000:0 mallocjemalloc-5.3.0 bits64# 第四步安装到系统路径可选sudomakeinstall# 这会把 redis-server, redis-cli 等复制到 /usr/local/bin/2.3 编译过程发生了什么源码编译流程图 下载源码 tar.gz │ ▼ 解压到 redis-7.2.5/ │ ▼ make 编译 │ ├── src/redis-server ← 服务端主程序 ├── src/redis-cli ← 客户端工具 ├── src/redis-benchmark ← 性能测试工具 ├── src/redis-sentinel ← 哨兵 ├── src/redis-check-rdb ← RDB文件检查 └── src/redis-check-aof ← AOF文件检查 │ ▼ make install (可选) │ ├── /usr/local/bin/redis-server ├── /usr/local/bin/redis-cli └── ...⚠️ 注意编译 Redis 需要 gcc 和 make。如果提示gcc: command not found先执行sudo apt install build-essential -yUbuntu或sudo yum groupinstall Development Tools -yCentOS。三、Windows 安装——WSL2 才是正道先说个残酷的事实Redis 官方不支持 Windows。微软在几年前维护过一个 Windows 移植版MicrosoftArchive/redis但已经停止更新最后版本停在 Redis 3.0。现在的 Windows 用户有且只有一条推荐路径WSL2。3.1 安装 WSL2# 在 PowerShell管理员中执行wsl--install# 重启电脑# 验证安装wsl--list--verbose# NAME STATE VERSION# * Ubuntu Running 23.2 在 WSL2 中安装 Redis# 进入 WSL2wsl# 之后的步骤和 Linux 一模一样sudoaptupdatesudoaptinstallredis-server-ysudoserviceredis-server start# 测试连接redis-cli PING# PONG3.3 Windows 客户端访问 WSL2 中的 Redis# 在 WSL2 中查看 IPipaddr show eth0|grepinet# inet 172.xx.xx.xx# 在 WSL2 中绑定到所有地址sudosed-is/bind 127.0.0.1/bind 0.0.0.0//etc/redis/redis.confsudoserviceredis-server restart# 在 Windows 中装个 Redis 客户端连接 WSL2 的 IPredis-cli-h172.xx.xx.xx-p6379PING3.4 各方案对比方案Redis版本性能推荐度说明WSL2最新(7.2)接近原生★★★★★最推荐性能好版本新Windows移植版3.0.503一般★★太旧了很多新特性用不了Docker最新接近原生WSL2后端★★★★也不错但多一层抽象Memurai兼容Redis 7好★★★商业版收费开发版免费四、Docker 快速启动——一行命令的事如果你有 Docker那么 Redis 的安装简单到令人发指# 最简启动没有密码没有持久化dockerrun-d--namemy-redis-p6379:6379 redis:7-alpine# 带密码 持久化推荐dockerrun-d\--namemy-redis\-p6379:6379\-vredis-data:/data\redis:7-alpine\redis-server--requirepassmypassword123--appendonlyyes# 验证dockerexec-itmy-redis redis-cli-amypassword123 PING# PONG# Docker Compose 方式推荐生产用catdocker-compose.ymlEOF version: 3.8 services: redis: image: redis:7-alpine container_name: redis-server restart: always ports: - 6379:6379 volumes: - ./redis-data:/data - ./redis.conf:/usr/local/etc/redis/redis.conf command: redis-server /usr/local/etc/redis/redis.conf EOFdocker-composeup-dDocker 里的 Redis 默认没有配置文件可以直接通过redis-server的参数来传配置也支持挂载自定义 redis.conf。alpine 镜像只有约 15MB非常轻量。五、redis.conf 关键参数速览不管你用哪种方式安装总归要面对配置文件。Redis 的配置文件通常有上千行注释居多这里挑最重要的几个参数说清楚。5.1 配置文件在哪里# Mac (Homebrew)/opt/homebrew/etc/redis.conf# Apple Silicon/usr/local/etc/redis.conf# Intel# Linux (apt安装)/etc/redis/redis.conf# 源码编译编译目录下的 redis.conf# Docker无默认配置文件需自行挂载# 查看当前 Redis 使用的配置文件redis-cli CONFIG GETdir5.2 核心参数速查表参数默认值作用生产建议daemonizeno是否后台运行yesLinuxMac建议用brew servicesbind127.0.0.1绑定IP内网使用0.0.0.0外网暴露需谨慎protected-modeyes保护模式yes内网可关port6379端口号如果公网暴露建议改端口requirepass- (空)连接密码建议设置强密码maxmemory0 (不限制)最大内存必须设置建议物理内存的70%maxmemory-policynoeviction淘汰策略缓存场景用allkeys-lrusave3600 1 300 100 60 10000RDB触发条件生产建议关闭用AOFappendonlynoAOF持久化数据不能丢就开yesappendfsynceverysecAOF同步策略默认everysec即可logfile“” (标准输出)日志文件“/var/log/redis/redis.log”loglevelnotice日志级别默认即可timeout0 (永不超时)客户端空闲超时60010分钟maxclients10000最大客户端连接数按需调整# 快速配置示例redis-server\--daemonizeyes\--port6379\--requirepassMyStr0ngPss\--maxmemory2gb\--maxmemory-policy allkeys-lru\--appendonlyyes\--logfile/var/log/redis/redis.log六、redis-cli 基础操作——你的第一串命令redis-cli 是 Redis 自带的一个命令行工具简单好用是日常调试 Redis 的瑞士军刀。6.1 连接与基本操作# 本地连接默认 127.0.0.1:6379redis-cli# 指定主机和端口redis-cli-h192.168.1.100-p6380# 带密码连接redis-cli-amypassword# 或连接后再 authredis-cli127.0.0.1:6379AUTH mypassword OK# 执行单条命令后退出redis-cli PING# PONGredis-cli SET foo bar# OKredis-cli GET foo# bar# 查看INFO信息redis-cli INFO server|head-20redis-cli INFO memory|head-20redis-cli INFO stats|head-206.2 批量操作# 从文件批量执行命令catcommands.txt# SET user:1 Alice# SET user:2 Bob# SET user:3 Charlieredis-clicommands.txt# 管道方式批量操作echo-eSET k1 v1\nSET k2 v2\nGET k1|redis-cli# 通过 --pipe 大批量导入# 先准备好 redis 协议格式的数据foriin{1..10000};doechoSET key:$ivalue:$idone|redis-cli--pipe6.3 监控与调试# 实时监控 Redis 收到的所有命令redis-cli MONITOR# 查看慢查询日志redis-cli SLOWLOG GET10# 查看所有 key仅测试环境用生产千万别redis-cli KEYS*# 查看 key 数量redis-cli DBSIZE# 获取 key 的类型redis-cli TYPE user:1# 检查 key 是否存在redis-cli EXISTS mykey# 查看 key 的剩余生存时间redis-cli TTL mykey⚠️ 注意KEYS *在生产环境是禁用操作它遍历所有 keyRedis 是单线程的数据量大时会直接阻塞所有请求。如果必须查看 key用SCAN命令它是迭代式的不阻塞。# 扫描 key安全方式redis-cli SCAN0MATCH user:* COUNT100七、启动与停止——你需要记住的几个命令# 启动 Redis # CentOS / RHELsudosystemctl start redis# Ubuntusudoserviceredis-server start# Mac (Homebrew)brew services start redis# 直接命令行启动redis-server /path/to/redis.conf--daemonizeyes# Dockerdockerstart my-redis# 停止 Redis # 推荐方式优雅关闭等持久化完成redis-clishutdown# 或redis-cli-apasswordshutdown# 带超时如果N秒内完成不了就强制关闭redis-clishutdownnosave# 不保存直接关redis-clishutdownsave# 先保存再关# 强制杀进程不推荐可能丢数据kill-9$(pgrep redis-server)# CentOSsudosystemctl stop redis# Ubuntusudoserviceredis-server stop# Macbrew services stop redis启动流程图redis-server 启动过程 读配置文件 │ ▼ 检查系统参数 ├── 文件描述符限制 ├── overcommit_memory └── THP (透明大页) │ ▼ 初始化数据结构 ├── Server 全局结构 ├── 命令表 └── 事件循环 (epoll) │ ▼ 加载持久化数据 ├── RDB 文件加载如存在 └── AOF 文件重放如启用 │ ▼ 绑定端口开始监听 │ ▼ Redis Server is ready │ ▼ ┌───────────────────────┐ │ 进入事件循环 │ │ while(server.running){│ │ aeProcessEvents(); │ │ } │ └───────────────────────┘八、安装后必做的安全加固Redis 默认配置是给开发环境用的几乎零安全措施。上生产前务必做以下几件事# 1. 设置密码redis-cli CONFIG SET requirepassYourStr0ngPssw0rd# 2. 禁止危险命令# 编辑 redis.confrename-command FLUSHDBrename-command FLUSHALLrename-command KEYSrename-command DEBUGrename-command CONFIG# 或重命名为只有自己知道的别名rename-command FLUSHDBmysecretflush123rename-command CONFIGmysecretconfig456# 3. 绑定内网IP不要监听 0.0.0.0# redis.confbind10.0.0.5127.0.0.1# 4. 开启保护模式protected-modeyes# 5. 修改默认端口防扫描port16379# 6. 限制最大客户端连接数maxclients5000本篇小结这篇文章我们横跨了 Mac、Linux、Windows 三大平台把 Redis 装了个遍。不管你用的什么操作系统现在都应该已经能把 Redis 跑起来了。记住几个关键点Mac用brew install redis3分钟搞定Linux用 apt/yum 或源码编译5-15分钟Windows必须走 WSL2别踩微软移植版的坑Docker一行命令强烈推荐生产环境必须设密码、改端口、禁危险命令下一篇文章我们要正式入门 Redis 的核心——五种数据类型。准备好了吗上一篇【第01篇】Redis是什么——从缓存神器到全栈数据库的进化之路下一篇【第03篇】Redis数据类型全景——String/Hash/List/Set/ZSet一锅端安装顺利吗遇到问题欢迎评论交流