Redis 的原理和使用(1)

发布时间:2026/10/19 15:39:53

Redis 的原理和使用(1) 前言本文内容从特性与安装起步逐类讲解 5 种数据结构及其内部编码再展开持久化、主从复制、哨兵、集群的实现原理最后落到缓存与分布式锁两类典型应用。一、初识 RedisRedis 是一款基于内存的键值对数据库数据以 key-value 形式组织。它既可以充当缓存也能承担消息队列、计数器、分布式锁等职责是后端开发中高频使用的组件。1.1 特性概述Redis 的特点可概括为八个方面覆盖性能、功能与可靠性特性说明速度快数据保存在内存中配合 C 语言实现与单线程模型可达到每秒万级别访问。基于键值对的数据结构服务器value 不只是字符串还支持 hash、list、set、zset 等结构。功能丰富提供过期策略、发布订阅、Lua 脚本、事务、Pipeline 等额外能力。简单稳定单线程模型配合内置数据结构代码量精简行为容易预测。客户端语言多C、C、Java、PHP、Python、NodeJS 等主流语言均有官方或社区客户端。持久化通过 RDB 与 AOF 两种策略把内存数据保存到硬盘避免断电或故障导致的数据丢失。主从复制支持多个数据副本是搭建分布式 Redis 的基础。支持高可用和分布式由哨兵提供故障转移由集群提供水平扩展。图 1-2 Redis 主从复制架构1.2 使用场景Redis 的典型用途可以归纳为以下几类缓存读多写少的场景配合过期时间降低后端存储压力。排行榜系统借助列表的有序性和有序集合的分数机制构建热度、时间等维度的榜单。计数器视频播放数、电商浏览数等需要高频自增的指标。分布式会话把用户 Session 集中存放解决负载均衡下的登录状态丢失问题。消息队列用 lpush brpop 实现生产者-消费者模型。分布式锁在分布式环境下协调多进程对共享资源的访问。使用 Redis 也要留意边界。“Redis 并不是万金油”部分场景并不适合它例如需要复杂查询能力、或对事务强一致有苛刻要求的业务需要结合具体问题评估。1.3 版本演进Redis 借鉴 Linux 的版本命名版本号第二位为奇数表示非稳定版本偶数表示稳定版本生产环境通常选取偶数版本。版本特性见下表版本代表性特性2.62012服务端支持 Lua 脚本键过期时间支持毫秒新增 bitcount / bitop、incrbyfloat 等命令。2.82013新增部分复制降低网络问题引发全量复制的频率Redis Sentinel 第二版达到生产可用。3.02015推出官方分布式实现 Redis Cluster优化 LRU 算法与 embedded string 编码。3.22016新增 GEO 相关功能列表新增 quicklist 编码spop 支持个数参数。4.02017提供模块系统PSYNC 2.0 解决主从切换触发全量复制的问题引入 LFU 淘汰算法支持 RDB-AOF 混合持久化新增 unlink 异步删除。5.02018新增流数据类型集群管理工具迁移到 C 语言实现。7.0当前文档撰写时最新的稳定版本延续偶数版本路线持续演进。1.4 安装与启动Redis 的安装可以从官网下载源码包解压后在根目录执行 make 完成编译。启动服务使用 redis-server进入交互使用 redis-cli。本机默认地址 127.0.0.1、端口 6379连接时可省略 -h 与 -p 参数$ redis-server $ redis-cli -h 127.0.0.1 -p 6379 127.0.0.1:6379 ping PONGredis-cli 的交互过程可以拆成三步客户端发送命令、服务端执行命令、服务端返回结果。
延伸阅读

更多相关文章

2026/10/19 15:39:53

AI工具红利期,文科生转行内容运营的实战方法论

文科转行,这三个字在我人生里盘旋了三年。三年前我还是某传统行业里一个写通知、整材料、给领导做PPT的行政岗,月薪到手勉强够生活,最怕的事情是开会,其次是写那种改十遍都定不了稿的公文。今天我在一家数字内容公司做内容运营方向…

2026/10/19 15:39:52

C语言数据结构编程笔记:链表

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 16:40:12

AI模型量化精度控制实战:误差溯源与混合精度分配

一次部署项目里,我把一个对话模型从 FP16 压到 INT8,任务准确率掉了 2 个多百分点。第一反应是量化位宽不够,换成更复杂的量化方法之后,精度没回来,反而把推理速度拖慢了。后来排查到根因,才发现问题根本不…

2026/10/19 16:40:12

斑马打印机驱动安装与标签对位详解

简介:这套斑马打印机驱动资源包面向零售、物流、医疗、制造等行业的条码标签打印场景,提供Zebra GX430t、ZM400、ZD620等多型号驱动文件,可解决打印机与操作系统间的通信、驱动安装及打印配置问题。包体共230个文件,约2.43MB&…

2026/10/19 16:40:12

用AI工具快速搞定开题报告:从选题输入到初稿导出的实战指南

每年到了开题季,总能在各种群里看到同一种崩溃:题目还没定、文献看不完、模板不会填,导师下周就要初稿。很多人不是不努力,是真的不知道从哪儿下手。我这两年接触了不少大学生和研究生,也在自己带项目的过程中反复折腾…

2026/10/19 16:40:12

斑马打印机驱动安装全指南:端口配置与乱码排查

简介:斑马打印机驱动安装包面向使用斑马品牌条码打印机的行业用户,适配零售、物流、医疗、制造等常见场景,操作系统与打印机之间的通信依赖该驱动完成,并直接影响条码标签的打印质量。RAR压缩包内共230个文件,总体积仅…

2026/10/19 16:35:11

FreeSWITCH集成libnice实现WebRTC ICE穿透实战

1. 项目概述:一次典型的VoIP底层调试实战记录2021年6月11日这个时间戳不是随便写的——它标记着一个真实发生过的、卡在生产环境边缘的VoIP通话故障。当时某跨平台语音通信模块在Linux服务器上持续出现单通、延迟突增和偶发性呼叫失败,日志里反复刷出osi…

2026/10/18 0:01:50

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/19 0:04:56

悟空开源无代码平台实战:从实体建模到应用设计避坑指南

简介:基于悟空开源无代码平台的多种应用设计源码,面向希望在不编写代码的情况下快速搭建CRM、HRM、财务系统、ERP、SRM等业务应用的企业与技术人员,通过拖放式界面和内置模板即可完成应用定制与部署。压缩包共697个文件,约10.74MB…

2026/10/19 0:04:56

基于.NET9的多租户权限系统:数据权限与动态API落地实践

简介:这份资源是一套面向 .NET 与 Vue 全栈开发者的中台权限管理系统,后端基于 .Net9,前端采用 Vue3 Element Plus,并配套 uniapp uviewui 移动端方案,实现前后端分离。系统覆盖多租户隔离、数据权限、动态 Api、任务…

2026/10/19 0:04:56

场地预约小程序毕设实战:SSM+微信小程序+MySQL数据库设计到避坑

简介:面向毕业设计场景的场地预约小程序完整项目,基于微信小程序SSMMySql技术栈开发,适合计算机相关专业学生作为选题参考、功能扩展或二次开发起点。系统实现场地类型管理、场地管理、预约管理、取消申请与押金退回等功能,分为管…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑