尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
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 的交互过程可以拆成三步客户端发送命令、服务端执行命令、服务端返回结果。
RELATED

相关推荐

open-code-review实践:让Code Review从走形式到有质量的自动化审查

open-code-review实践:让Code Review从走形式到有质量的自动化审查

1. 我受够了走形式的Code Review,所以认真折腾了open-code-review先说说我自己的处境。团队里的Code Review一直处于一种"大家都很忙,评审全靠演技"的状态:提交者为了赶进度,代码一推就催着人看;评审者手里压…

📅 2026/10/19 15:39:37
AI工具红利期,文科生转行内容运营的实战方法论

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

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

📅 2026/10/19 15:39:37
大模型加强训练全攻略:从SFT到RLHF的TRL实操指南

大模型加强训练全攻略:从SFT到RLHF的TRL实操指南

1. 为什么大模型需要“加强训练”:从SFT到RLHF的演进1.1 基础预训练与SFT的局限做AI训练这行,摸爬滚打久了,你会发现一个特别本质的问题:大语言模型从“读懂了文字”到“会跟人好好说话”,中间差了十万八千里。预训练阶…

📅 2026/10/19 15:34:36
MORE NEWS

更多资讯

📰

自托管Sentry升级遇Django迁移冲突:table already exists排查与修复

自托管 Sentry 升级跑到一半,终端突然甩出一行 django.db.utils.OperationalError: table "labels_manager_label" already exists ,紧接着就是 Sentry is attempting ... 的提示。第一次碰到时,我也愣了一下:明明是…

📰

小程序安全评估:解析mtgsig1.2 w1.6动态签名机制与排查思路

做小程序安全评估的兄弟,估计都在请求日志里见过“mtgsig”这个参数。尤其最近某本地生活点评平台的小程序端升级了新版本,签名策略也迭代到了mtgsig1.2、w1.6,不少人在调试接口、排查问题的时候直接卡在签名校验上。这篇文章我想把实际分析过…

📰

Spring Bean Scope 全解析:从 singleton 到 prototype 的创建机制与实战陷阱

Spring 的 Scope 这个知识点,我印象里很多人是"面试背概念,写代码全默认"。直到某天线上一个单例 Service 注入的 prototype Bean 出了并发状态串号的问题,我才真正意识到:Scope 不是在讨论"一个对象能活多久"…

📰

Qwen 27篇论文深度复盘:从架构选型到垂直分支的技术决策

如果你打算把这27篇论文当作一个开源模型家族的编年史来读,我的建议是先别急着按发布时间排序。第一次接触这类大型模型家族的深度复盘时,我踩过的坑就是天天刷PDF,结果前后版本的技术点乱成一锅粥,读完只记得"参数又变多了&…

📰

模型超越榜单背后:评测方法、开源部署与真实应用

这周的AI圈讨论热度,比此前几场发布会加在一起还要高。起因很简单:一个过去几个月被默认“无人能撼动”的头部实验室 L,突然被一家此前并不显眼的团队压了过去。消息最先从某个众包评测榜单上传出,随后几天内,各路博主…

📰

随机森林预测电池RUL:不依赖电化学方程的稳定建模方法

简介:本资源是一套基于Python随机森林算法的锂离子电池剩余寿命(RUL)预测完整实践方案,面向机器学习入门者与电池健康状态研究初学者,适用于课程设计、毕设选题及工程实训等场景。资源包共117个文件,含106个…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬