Redis 的原理和使用(1)

发布时间:2026/10/19 15:39:05
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 的交互过程可以拆成三步客户端发送命令、服务端执行命令、服务端返回结果。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询