Redis入门保姆级笔记
文章目录前言一、先搞懂好好的MySQL不用为啥要学NoSQL1.1 技术栈的三层境界1.2 Web发展逼出来的两座大山Web1.0时代单机就能打Web2.0时代性能瓶颈直接炸了1.3 CPU压力解法Nginx负载均衡但Session成了难题1.4 IO压力解法缓存才是终极答案1.5 NoSQL到底是什么1.6 常见NoSQL三兄弟对比二、Redis登场内存数据库的天花板2.1 Redis是怎么来的作者的八卦小故事2.2 Redis核心特性2.3 Redis能干嘛7大经典场景三、CentOS7安装Redis 手把手踩坑指南3.1 前期准备3.2 安装全步骤第一步解压安装包第二步编译新手最容易翻车的一步第三步执行安装3.3 安装目录里都是啥3.4 启动方式别用前台启动不推荐前台启动推荐后台守护进程启动3.5 关闭服务的正确姿势3.6 远程连接必做开放端口修改配置3.7 冷知识小彩蛋总结前言学习Redis之前要先有一定的Linux基础哦~提示以下是本篇文章正文内容下面案例可供参考一、先搞懂好好的MySQL不用为啥要学NoSQL1.1 技术栈的三层境界我们学过的技术其实可以分成三类对应项目开发的三个阶段解决功能性问题JavaSE、Servlet、JDBC、Linux这些能用代码把业务做出来就行解决扩展性问题Spring、SpringMVC、MyBatis这些框架加新功能不用大改老代码规范开发解决性能问题NoSQL、Nginx、MQ、ES用户量上来了系统不能卡崩前两个阶段我们都已经接触过了现在学的NoSQL就是专门用来扛高并发、海量数据的「性能buff」。1.2 Web发展逼出来的两座大山Web1.0时代单机就能打早年网站用户少一台Web服务器一台MySQL服务器就能搞定所有请求数据量小、访问量低怎么玩都不卡。Web2.0时代性能瓶颈直接炸了随着用户暴涨再加上手机端普及系统直接面临两大压力CPU内存压力一台Web服务器扛不住海量用户请求IO压力数据越积越多每次都查数据库磁盘IO直接打满MySQL卡成PPT1.3 CPU压力解法Nginx负载均衡但Session成了难题Web服务器扛不住那就多部署几台用Nginx做负载均衡把请求分摊到不同服务器上。但很快就出现了经典问题Session不共享。用户第一次请求落到服务器A登录信息存在A的Session里第二次请求被分到服务器BB根本不认识这个用户直接让重新登录体验直接崩了。当时有三个解决方案各有各的坑方案做法致命缺点存在Cookie里把用户信息放浏览器Cookie每次请求带过来敏感数据不安全容易被篡改Session复制每台服务器互相同步Session数据冗余严重服务器越多越浪费统一存缓存数据库所有Session都放NoSQL里所有服务器共享几乎没缺点读写还快业界最终选了第三种方案——用内存级的NoSQL数据库统一存Session这也是NoSQL最经典的应用场景之一。1.4 IO压力解法缓存才是终极答案数据库查得慢那就把频繁查的数据提前放到更快的地方。方案1数据库读写分离、分库分表。改动大还会破坏业务逻辑成本很高方案2热点数据放缓存。直接从内存读速度是磁盘的上百倍90%的请求都不用碰数据库这也是我们学Redis最核心的目的用缓存扛住大部分读请求保护MySQL。1.5 NoSQL到底是什么NoSQL Not Only SQL直译是「不仅仅是SQL」泛指所有非关系型数据库。和MySQL这种关系型数据库比它有几个鲜明特点不遵循传统SQL标准没有表、行、列的概念大多不支持ACID事务牺牲强一致性换极致性能读写速度远超SQL数据库天生适配高并发扩展性极强加节点就能扩容ACID是什么原子性 Atomic不可分割事务是最小执行单元内部操作不可拆分全成功 / 全回滚。转账例子扣款、加钱要么都完成要么全部撤销。一致性 Consistency事务执行前后数据库的数据约束、业务规则始终合法。转账前后A 余额 B 余额 总和不变不会凭空多 / 少钱库存不能出现负数。隔离性 Isolation多个事务并发执行时各个事务之间互相隔离互不干扰一个事务看不到另一个未提交的脏数据。两个人同时给同一账户转账彼此操作互不干扰不会错乱。持久性 Durability事务提交 (commit) 之后对数据的修改永久写入磁盘就算数据库宕机、断电数据也不会丢失。转账成功后服务器突然关机再次开机转账记录依然存在。适用场景高并发读写、海量数据存储、需要灵活扩容的业务不适用场景需要严格事务支持、复杂多表关联查询、结构化数据存储1.6 常见NoSQL三兄弟对比入门阶段最常听到的三个NoSQL数据库区别其实很清晰数据库特点定位Memcache只支持简单key-value不持久化数据类型单一早期缓存方案现在基本被Redis取代Redis支持多种数据结构支持持久化备份功能最全企业级缓存首选万金油选手MongoDB文档型数据库存JSON格式查询功能强存非结构化数据替代部分MySQL场景我们课程重点学Redis毕竟现在后端面试、工作基本都绕不开它。二、Redis登场内存数据库的天花板2.1 Redis是怎么来的作者的八卦小故事Redis的作者是意大利程序员antirez早年他做了一个网站统计访客记录的项目叫LLOOGG.COM核心需求就是每个网站对应一个列表新记录从头部加超过长度就把尾部最早的删掉先进先出。一开始用MySQL做结果用户多了之后列表的push、pop操作太频繁磁盘IO直接顶不住怎么优化SQL都没用。作者一怒之下既然瓶颈在磁盘那我直接把数据放内存里不就行了于是用C语言重写了一个内存版的列表数据库加上了持久化功能2009年Redis正式横空出世。它的全称是REmote DIctionary Service远程字典服务本质就是一个可以远程访问的、存键值对的内存字典。2.2 Redis核心特性和Memcache比Redis能火这么多年靠的就是功能全还性能强支持5大数据类型字符串、列表、集合、有序集合、哈希不止是简单的key-value操作全是原子性单线程执行不用担心并发冲突支持持久化数据在内存但可以定期存到磁盘宕机不丢数据支持主从复制、哨兵、集群高可用、扩容都有成熟方案单线程多路IO复用别看是单线程速度比多线程还快还没锁的开销2.3 Redis能干嘛7大经典场景别觉得Redis只能当缓存它的玩法多到离谱业务场景Redis实现方案最新评论、消息列表List列表天然按插入顺序排序排行榜、热度榜单Zset有序集合按分数自动排序手机验证码、临时权限Expire过期时间到点自动删除秒杀库存、访问计数器INCR/DECR原子自增并发不超卖海量数据去重Set集合自动去重效率极高消息队列、任务排队List实现简单队列实时消息广播pub/sub发布订阅模式三、CentOS7安装Redis 手把手踩坑指南3.1 前期准备环境CentOS7 系统安装包redis-6.2.1.tar.gz(版本不唯一)必装依赖gcc编译器⚠️ 踩坑预警没装gcc直接编译百分百报错# 检查有没有gccgcc--version# 没有就安装yuminstallgcc-y3.2 安装全步骤第一步解压安装包把安装包传到/opt目录执行解压cd/opttar-zxvfredis-6.2.1.tar.gz第二步编译新手最容易翻车的一步进入解压后的目录执行make编译cdredis-6.2.1/make❌ 经典报错jemalloc/jemalloc.h: 没有那个文件或目录原因gcc环境没准备好就执行了make残留了错误的编译文件解决办法先清理错误文件重新编译makedistclean# 清除之前的编译垃圾make# 重新编译第三步执行安装编译完成后安装到系统目录makeinstall安装完成后所有命令会自动放到/usr/local/bin目录下全局都能调用。3.3 安装目录里都是啥/usr/local/bin下的几个核心工具先混个脸熟命令作用redis-serverRedis服务器启动命令redis-cliRedis客户端操作入口redis-benchmark性能测试工具压测Redis速度redis-check-aof / redis-check-rdb修复损坏的持久化文件redis-sentinel哨兵模式专用3.4 启动方式别用前台启动不推荐前台启动直接输redis-server就能启动但终端一关服务就停纯纯测试用生产绝对不能这么干。推荐后台守护进程启动这是我们日常用的标准方式需要修改配置文件先把配置文件复制到安装目录cp/opt/redis-6.2.1/redis.conf /usr/local/bin修改配置文件开启后台运行vim/usr/local/bin/redis.conf找到daemonize no改成daemonize yes意思是「以守护进程方式运行」后台常驻关终端不影响启动Redisredis-server redis.conf验证是否启动成功ps-ef|grepredis能看到redis-server 127.0.0.1:6379进程就说明启动成功了。客户端连接测试redis-cli# 进入客户端后输入ping127.0.0.1:6379pingPONG返回PONG说明连接正常环境彻底搞定。3.5 关闭服务的正确姿势# 方式1客户端内关闭127.0.0.1:6379shutdown# 方式2命令行直接关redis-clishutdown# 多实例指定端口关闭redis-cli-p6379shutdown3.6 远程连接必做开放端口修改配置⚠️ 新手第二大坑本地能连Java代码/远程工具连不上默认Redis只允许本机访问要远程连接必须改两个地方开放防火墙6379端口firewall-cmd--permanent--add-port6379/tcp firewall-cmd--reload# 查看已开放端口firewall-cmd --list-ports修改redis.conf配置注释掉bind 127.0.0.1或者改成0.0.0.0把protected-mode yes改成no关闭保护模式改完重启Redis生效3.7 冷知识小彩蛋端口号6379的由来作者早年喜欢玩梗6379是手机九宫格键盘上「MERZ」对应的数字。MERZ是意大利一个女明星的名字作者和朋友早年用这个词当「愚蠢」的梗选端口的时候随手就用了。默认16个数据库Redis默认有16个数据库下标从0开始默认用0号库。用select 数字就能切换不过集群模式下不支持多库。单线程为什么还这么快Redis是「单线程多路IO复用」模型避免了多线程锁竞争的开销纯内存操作本身就极快瓶颈根本不在CPU而在网络IO所以单线程完全够用。总结本文从项目性能优化的真实痛点切入完整梳理了NoSQL的诞生背景与Redis入门全流程核心内容可归纳为三点为什么学性能瓶颈倒逼技术演进Web2.0高并发场景下传统架构暴露出Web服务器算力不足、数据库IO压力过大两大难题。NoSQL凭借内存级读写速度成为解决Session共享、热点数据缓存的最优方案其中Redis因功能全面、性能强劲是当前企业级缓存的首选技术。是什么Redis的核心定位与能力边界Redis是基于C语言开发的键值型内存数据库支持5大数据结构、原子操作、持久化与高可用架构可覆盖缓存、排行榜、验证码、计数器、消息队列等7类经典业务场景并非单一的缓存工具。怎么搭零踩坑安装部署指南提供了CentOS7环境下Redis 6.2.1从编译到启动的完整步骤重点标注了gcc依赖缺失、jemalloc编译报错、远程连接失败三大新手高频坑给出了后台守护进程配置、防火墙端口开放、保护模式关闭的标准解决方案。本文是Redis系列的入门基础篇搞定环境搭建后可继续深入学习数据类型操作、持久化机制与集群架构等高阶内容。

相关新闻

虚幻引擎5.2蓝图实现:角色游泳、潜水与浮力控制系统开发指南

虚幻引擎5.2蓝图实现:角色游泳、潜水与浮力控制系统开发指南

1. 项目概述:从“会动”到“会游”的角色进化 在虚幻引擎5.2里做一个能跑能跳的角色,对很多开发者来说已经是家常便饭。但当你需要把角色丢进一个广阔的水世界,让他不仅能浮在水面扑腾,还能一个猛子扎下去探索深海,事情…

2026/8/7 7:52:32 阅读更多 →
KeymouseGo:5分钟上手!免费鼠标键盘录制工具彻底解放你的双手

KeymouseGo:5分钟上手!免费鼠标键盘录制工具彻底解放你的双手

KeymouseGo:5分钟上手!免费鼠标键盘录制工具彻底解放你的双手 【免费下载链接】KeymouseGo 类似按键精灵的鼠标键盘录制和自动化操作 模拟点击和键入 | automate mouse clicks and keyboard input 项目地址: https://gitcode.com/gh_mirrors/ke/Keymou…

2026/8/7 7:52:32 阅读更多 →
Chrome自动播放策略解析:从本地文件到生产环境的实战解决方案

Chrome自动播放策略解析:从本地文件到生产环境的实战解决方案

1. 问题根源:为什么Chrome不让我的网页自动播放了? 如果你最近在用Chrome浏览器打开本地HTML文件,或者部署一个简单的网页demo时,发现背景音乐不响了,开场视频卡住了,第一反应可能是:“我的代码…

2026/8/7 7:52:32 阅读更多 →

最新新闻

用检索增强生成让大模型更强大,这里有个手把手的Python实现

用检索增强生成让大模型更强大,这里有个手把手的Python实现

自从人们察觉到能够运用自身专有的数据以使大型语言模型也就是 LLM 变得更为强大之后, 人们便持续在探讨怎样去有效地把 LLM 的一般性知识同专有数据整合到一块。针对此状况人们同样一直处于争论之中, 其中一派观点觉得是微调更合适, 另一派观点则认为检索增强生成也就是也就是…

2026/8/7 9:10:07 阅读更多 →
如何去理解上面的软件需求定义呢?

如何去理解上面的软件需求定义呢?

团队成员的责任 一、需求分析概述 什么是需求?卖肉之人发问: 要啥。买肉之人回应: 要点肉。卖肉之人又问: 是啥肉? 是精肉还是五花肉。买肉之人回说: 是做饺子用的。卖肉之人说道: 那来点五花肉。问: 几斤?当打算去购买一辆汽车时, 需要具备这样一些条件, 即车子能…

2026/8/7 9:10:07 阅读更多 →
WPS会员升级决策指南:从普通到超级会员的成本效益分析

WPS会员升级决策指南:从普通到超级会员的成本效益分析

1. 项目概述:一次关于WPS会员升级的深度成本效益分析最近在办公软件的选择上,我身边不少朋友都开始重新审视WPS Office。原因很简单,在基础功能免费的前提下,它的会员体系提供了相当有吸引力的增值服务。大家讨论最多的一个话题就…

2026/8/7 9:10:07 阅读更多 →
KingbaseES V9R2C13数据库性能优化实战与调优技巧

KingbaseES V9R2C13数据库性能优化实战与调优技巧

1. KingbaseES V9R2C13性能优化实战背景 作为国产数据库领域的代表产品,KingbaseES V9R2C13在金融、政务等关键行业已有大规模应用实例。我们团队在最近承接的某省级医保平台迁移项目中,需要将原有Oracle数据库平滑迁移至KingbaseES环境,这就…

2026/8/7 9:10:07 阅读更多 →
从数字到实体:专业照片排版与自助打印全流程实战指南

从数字到实体:专业照片排版与自助打印全流程实战指南

1. 项目概述:从数字到实体的光影仪式 在数字影像唾手可得的今天,为什么我们还要执着于“胶片打印”和“排版”?这听起来像是一个复古的仪式。但对我而言,这远不止是怀旧。它关乎对影像的尊重、对物理媒介的触感,以及将…

2026/8/7 9:10:07 阅读更多 →
Python 库与 EMR Serverless 结合使用

Python 库与 EMR Serverless 结合使用

此篇章归属于借助机器进行翻译而得来的版本, 要是当前翻译而成的内容相较于英文原本的内容存有不同之处, 那么一概是以英文原本的内容作为标准的。将 库与 EMR 结合使用运行作业于EMR无服务器应用程序之上时, 要把各类库打包成依赖项。为达成此目的所采用的方式有, 运用原生功能…

2026/8/7 9:09:06 阅读更多 →

日新闻

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南 【免费下载链接】scrcpy Display and control your Android device 项目地址: https://gitcode.com/GitHub_Trending/sc/scrcpy 想要将Android手机屏幕完美投射到电脑上,享受大屏操作的自…

2026/8/7 0:00:19 阅读更多 →
如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南

如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南

如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南 【免费下载链接】tom-select Tom Select is a lightweight (~16kb gzipped) hybrid of a textbox and select box. Forked from selectize.js to provide a framework agnostic autocomplete widget wi…

2026/8/7 0:00:19 阅读更多 →
5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件

5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件

5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件 【免费下载链接】nsz NSZ - Homebrew compatible NSP/XCI compressor/decompressor 项目地址: https://gitcode.com/gh_mirrors/ns/nsz 你是否在为Nintendo Switch游戏文件占用大量存储…

2026/8/7 0:00:19 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/6 22:02:27 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/6 22:02:27 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/6 22:02:27 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/5 23:28:39 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/6 22:02:28 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/5 23:46:51 阅读更多 →