尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Redis初识

Redis初识
📅 发布时间:2026/7/5 14:26:58

1. 认识 Redis

1.1 用途:

用于存储数据,内存中存储

定义变量不就是在内存中存储数据,为什么还要使用Redis:

Redis在分布式系统中可以发挥其功能,如果是单机程序,直接通过变量存储数据的方式比Redis更优

进程具有隔离性,进程间的通信基于网络,Redis就是基于网络,可以把自己内存中的变量给别的进程,甚至在别的主机的进程进行使用

1.2 Redis主要可以用作:

  1. 数据库
  2. 缓存数据
  3. 消息队列

用作数据库:

MySQL是最常用的数据库,最大的问题在于访问速度比较慢,在很多互联网产品中,对于性能要求是很高的,Redis作为数据库使用可以快很多,但和MySQL相比,最大的劣势是存储空间有限

用作缓存:

如何使存储空间大而且访问速度快?

典型的案例是把Redis 和 MySQL 结合起来使用

“二八原则” 20%的热点数据能够满足80%的访问需求

缺点:系统的复杂程度大大提高,而且如果数据发生修改,还涉及到 Redis 和MySQL 之间的数据同步问题

用作消息队列:

Redis最初是用来作为一个“消息中间件”的“消息队列”

分布式系统下的生产者消费者模型

当前很少会直接使用Redis作为消息中间件使用

1.3 Redis特性

1.3.1 在内存中存储数据

MySQL主要通过“表”的方式来存储组织数据,成为“关系型数据库”

Redis主要通过“键值对”的方式来存储组织数据,称为“非关系型数据库”

key 都是 string

value 则可以是上述的这些数据结构

1.3.2 可编程性

针对Redis的操作,可以直接通过简单的交互式命令进行操作,也可以通过一些脚本的方式,批量进行一些操作

1.3.3 可扩展性

可以在Redis原有的功能上进行扩展,Redis提供了一组API

1.3.4 持久化

Redis把数据存储在内存上,内存的数据是很容易丢失的(进程退出/重启)Redis会把数据存储在硬盘上,内存为主,硬盘为辅(硬盘相当于对内存的数据备份了一下)如果Redis重启了,就会在重启时加载硬盘中的备份数据,使Redis的内存恢复到重启前的状态

1.3.5 支持集群

Redis作为一个分布式系统中的中间件,能够支持集群是很关键的,这个水平拓展,类似于分库分表,一个Redis能存储的数据是有限的,引入多个主机,部署多个Redis节点,每个Redia存储数据的一部分

1.3.6 高可用

冗余 / 备份

Redis自身也是支持“主从”结构的,从节点就相当于主节点的备份

1.3.7 访问速度快

1. Redis数据在内存中,就比访问硬盘的数据库要快很多

2. Redis核心功能都是比较简单的逻辑,核心功能都是比较简单的操作内存的数据结构

3. 从网络角度上,Redis使用IO多路复用的方式(使用一个线程管理多个socket)

4. Redis使用单线程模型,减少了不必要的线程之间的竞争开销

5. (待考量)Redis使用C语言开发(MySQL也是C语言开发的)

1.3.8 功能丰富

除了提供5种数据结构,Redis还提供了许多额外的功能:

1. 提供了键过期功能,可以用来实现缓存

2. 提供了发布订阅功能,可以用来实现消息系统

3. 支持 Lua 脚本功能,可以利用Lua 创造出新的Redis命令

4. 提供了简单是事务功能,能在一定程度上保证事务特性

5. 提供了流水线功能,这样客户端能将一批命令一次性传到Redis,减少网络的开销

1.3.9 客户端语言多

Redis提供了简单的TCP通信协议,很多编程语言可以很方便地接入到Redis,并且由于Redis收到社区和各大公司的广泛认可,所以支持Redis的了护短语言非常多,几乎涵盖了主流的编程语言

1.4 Redis使用场景

数据库

大多数情况下,考虑到数据库存储,有限考虑的是“大”,但是仍然有一些场景,考虑的是“快”

缓存 / 会话存储

消息队列

分布式系统来说,服务器和服务器之间,有时候也需要使用到生产这消费者模型,如果当前场景中,对于消息队列的功能依赖不是很多,并且不想引入额外的依赖了,Redis可以作为一个选择


1. 缓存

缓存机制几乎所有大型网站都有使用,合理使用缓存不仅可以加速数据的访问速度,而且能有效降低后端数据源的压力。Redis提供了键值过期时间设置,并且也提供了灵活控制最大内存和内存溢出后的淘汰策略。可以这么说,一个合理的缓存设计能够为一个网站的稳定保驾护航。

2. 排行榜系统

排行榜系统几乎存在于所有的网站,例如按照热度排名的排行榜,按照时发布的排行榜,按照各种复杂维度计算出的排行榜,Redis提供了列表和有序集合的结构,合理使用这些数据结构可以很方便的构建各种排行榜系统。

3. 计数器应用

计数器在网站中的作用至关重要,例如视频网站有播放数、电商网站有浏览数,为了保证数据的实时性,每一次播放和浏览都要做加1的操作,如果并发量很大对于传统关系型数据的性能是一种挑战。Redis天然支持技术功能且技术的性能也非常好,可以说是计数系统的重要选择。

4. 社交网路

赞/踩、分析、共同好友/喜好、推送、下拉刷新等是社交网络的必备功能,由于社交网站访问量通常比较大,而且传统的关系型数据库不太适合保存这种类型的数据,Redis提供的数据结构可以相比较容易地实现这些功能。

5. 消息队列系统

消息队列系统可以说是一个大型网站的必备基础组件,因为其具有业务解耦,非实时业务削峰等特性。Redis提供了发布订阅功能和阻塞队列的功能,虽然和专业的消息队列还不够强大,但是对于一般的消息队列功能基本可以满足


Redis不能做的事是:存储大规模数据

Redis的快是相对于MySQl这样的关系型数据库,但如果直接和内存中的操作变量相比,就没有优势了,甚至更慢

单机系统用一个Redis来存,还是直接在内存中搞一个hash map

使用hash map 是直接操作内存

使用Redis 是先通过网络,再操作内存

2. Reids操作

Redis也是一个客户端-服务器 机构的程序

Redis 客户端和服务器可以在同一个主机上,也可以在不同的主机上

Redis的客户端也有很多种形态:

1. 自带了命令行客户端

redis-cli

2. 图形化界面的客户端(桌面系统,web程序)

向这样图形化程序,依赖windows系统,在实际工作中用来办公的windows系统,连接到服务器可能会有很多限制

3. 基于Redis 的api 自行开发客户端

相关新闻

  • AI驱动的知识图谱如何重塑信息管理
  • 【共创季稿事节】待办清单应用开发实战:ArkTS 列表渲染与状态管理深度解析
  • B. Good times Good times(Codeforces 2241)

最新新闻

  • 深度学习图像分割实战:从原理到代码实现
  • 【信息科学与工程学】计算机科学与自动化——第三十八篇 质量工程 02 云数据中心质量工程
  • IIM-42652与PIC18LF25K42的6DoF运动追踪系统设计
  • 3步掌握MAVProxy:Python无人机地面站完全掌控指南
  • WGAN-GP 在 CPU 上训练插画的启示:从理论到受限资源下的生成实践
  • 【Atlas】Solr 在 Atlas 中的作用是什么?是否可以替换为 Elasticsearch?

日新闻

  • 基于YOLOv12的番茄成熟度智能检测系统开发
  • 终极RimWorld模组管理指南:用RimSort告别模组冲突烦恼
  • AI Agent框架开发:从理论到实践的完整指南

周新闻

  • 基于YOLOv12的番茄成熟度智能检测系统开发
  • 终极RimWorld模组管理指南:用RimSort告别模组冲突烦恼
  • AI Agent框架开发:从理论到实践的完整指南

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号