写在前面Redis作为当下最流行的内存数据库之一已经成为后端开发者的必备技能。本文将从零开始带你完成Redis的环境搭建与基础配置为后续深入学习打下坚实基础。文章目录写在前面一、Redis是什么Redis的核心特点二、为什么用RedisRedis vs 其他缓存方案Redis的典型应用场景三、安装配置3.1 Linux环境安装3.2 Mac环境安装3.3 Windows环境安装四、基本命令4.1 连接与认证4.2 基础操作命令五、配置文件详解5.1 网络配置5.2 内存配置5.3 持久化配置六、踩坑提醒6.1 端口占用问题6.2 内存限制问题6.3 后台运行配置七、面试高频考点Q1Redis为什么这么快Q2Redis单线程为什么还能高并发Q3如何保证Redis数据安全八、参考资料九、互动话题一、Redis是什么实际场景当你需要为网站添加缓存层提升访问速度时Redis就是那个快得飞起的选择。RedisRemote Dictionary Server是一个开源的、基于内存的数据结构存储系统可以用作数据库、缓存和消息中间件。它支持多种数据结构如字符串、哈希、列表、集合、有序集合等。Redis的核心特点特性说明实际意义基于内存数据存储在内存中读写速度极快QPS可达10万单线程模型主要工作线程为单线程避免上下文切换性能稳定持久化支持RDB和AOF两种方式数据不丢失可恢复丰富数据类型5种基本高级数据类型满足多种业务场景支持集群主从复制、哨兵、集群模式高可用、高扩展二、为什么用Redis经验之谈不要为了用Redis而用Redis先想清楚你的业务场景是否真的需要它。Redis vs 其他缓存方案对比项RedisMemcached本地缓存数据类型丰富5种仅字符串取决于实现持久化支持不支持不支持分布式原生支持支持不支持线程模型单线程多线程取决于实现适用场景缓存/数据库/消息队列纯缓存单机快速访问Redis的典型应用场景缓存系统加速热点数据访问计数器文章阅读量、点赞数分布式会话Session共享排行榜游戏积分榜、热搜榜消息队列异步任务处理分布式锁防止重复操作三、安装配置3.1 Linux环境安装踩坑提醒生产环境建议使用稳定版本不要盲目追新。# 下载Redis以7.0版本为例wgethttps://download.redis.io/releases/redis-7.0.11.tar.gz# 解压tar-xzfredis-7.0.11.tar.gzcdredis-7.0.11# 编译make# 安装到指定目录makeinstallPREFIX/usr/local/redis# 启动Redis服务/usr/local/redis/bin/redis-server注意事项编译前确保系统已安装gccPREFIX参数指定安装路径后台运行需修改配置文件3.2 Mac环境安装# 使用Homebrew安装brewinstallredis# 启动服务brew services start redis# 验证安装redis-cliping3.3 Windows环境安装# 下载Windows版本由Microsoft维护# 访问https://github.com/microsoftarchive/redis/releases# 解压后运行redis-server.exe redis.windows.conf# 另开终端测试redis-cli.exe踩坑提醒Windows版本更新较慢生产环境强烈建议使用Linux部署。四、基本命令4.1 连接与认证# 连接本地Redis redis-cli # 连接指定主机和端口 redis-cli -h 127.0.0.1 -p 6379 # 带密码连接 redis-cli -h 127.0.0.1 -p 6379 -a your_password # 测试连接 ping上述命令中-h指定主机地址-p指定端口-a指定密码。连接成功后执行ping会返回PONG。4.2 基础操作命令# 设置键值对 set name redis # 获取值 get name # 删除键 del name # 检查键是否存在 exists name # 设置过期时间秒 expire name 60 # 查看剩余生存时间 ttl name # 查看所有键生产环境慎用 keys *注意事项KEYS命令会阻塞Redis生产环境应使用SCANEXPIRE设置过期时间后键会被自动删除五、配置文件详解Redis的配置文件通常位于redis.conf以下是关键配置项说明。5.1 网络配置# 绑定地址0.0.0.0表示接受所有IP访问 bind 127.0.0.1 # 端口号 port 6379 # 保护模式生产环境建议开启 protected-mode yes5.2 内存配置# 最大内存使用量 maxmemory 2gb # 内存淘汰策略 maxmemory-policy allkeys-lru淘汰策略说明noeviction不淘汰内存满时返回错误allkeys-lru从所有键中淘汰最近最少使用volatile-lru从设置了过期时间的键中淘汰LRUallkeys-random随机淘汰volatile-ttl淘汰即将过期的键5.3 持久化配置# RDB快照配置 save 900 1 save 300 10 save 60 10000 # RDB文件名 dbfilename dump.rdb # AOF持久化 appendonly yes appendfilename appendonly.aof六、踩坑提醒6.1 端口占用问题踩坑提醒启动失败时首先检查端口是否被占用。# 查看端口占用netstat-tlnp|grep6379# 或使用lsoflsof-i:6379# 杀掉占用进程kill-9进程ID6.2 内存限制问题当Redis内存使用达到maxmemory限制时会根据淘汰策略处理检查当前内存使用info memory设置合理的maxmemory选择合适的淘汰策略监控内存使用情况6.3 后台运行配置# 修改redis.conf daemonize yes # 指定配置文件启动 redis-server /path/to/redis.conf七、面试高频考点Q1Redis为什么这么快答案基于内存操作避免磁盘IO单线程模型避免上下文切换IO多路复用高效处理并发连接精心设计的数据结构Q2Redis单线程为什么还能高并发答案Redis的单线程指的是处理命令的核心线程。它利用IO多路复用技术如epoll可以同时监听多个客户端连接。当有命令到达时快速处理不会被阻塞。同时一些耗时操作如删除大key会在后台线程执行。Q3如何保证Redis数据安全答案配置持久化RDBAOF混合使用设置合理的密码限制网络访问bind防火墙主从复制哨兵实现高可用八、参考资料Redis官方文档Redis命令参考Redis最佳实践九、互动话题你在Redis安装配置过程中遇到过哪些问题欢迎在评论区分享你的踩坑经历和解决方案一起交流学习下一篇我们将深入探讨Redis的5种基本数据类型敬请期待