您的位置:首页 > 新闻 > 热点要闻 > Redis篇二:特性介绍及应用场景

Redis篇二:特性介绍及应用场景

2025/5/8 18:17:40 来源:https://blog.csdn.net/qq_62321047/article/details/141436458  浏览:    关键词:Redis篇二:特性介绍及应用场景

文章目录

  • 1. 特性
    • 1.1 速度快
    • 1.2 基于键值对的方式存储组织数据
    • 1.3 Programmability(可编程的)
    • 1.4 Extensibility(可扩展的)
    • 1.5 Persistence(持久化)
    • 1.6 Clustering(集群)
    • 1.7 High availablity(高可用)
  • 2. 应用场景
    • 2.1 Real-time data store(事实的数据存储)
    • 2.2 Caching(缓存)
    • 2.3 Streaming & messaging

1. 特性

1.1 速度快

  正常情况下,Redis 执行命令的速度非常快,官方给出的数字是读写性能可以达到 10 万 / 秒,当然这也取决于机器的性能,但这里先不讨论机器性能上的差异,只分析⼀下是什么造就了 Redis 如此之快,可以大概归纳为以下四点:

  • Redis 的所有数据都是存放在内存中的,把数据放在内存中是 Redis 速度快的最主要原因。
  • Redis 是用 C 语⾔实现的,⼀般来说 C 语⾔实现的程序 “距离” 操作系统更近,执行速度相对会更快。
  • Redis 使用了单线程,预防了多线程可能产⽣的竞争问题。
      Redis 在 6.0 版本引⼊了多线程机制,但主要也是在处理网络和 IO(多路复用,epoll),不涉及到数据命令,即命令的执行仍然采用了单线程模式。
  • Redis的核心功能都是比较简单的逻辑,都是一些比较简单的操作内存中的数据结构的功能。

1.2 基于键值对的方式存储组织数据

  几乎所有的编程语⾔都提供了类似字典的功能,例如 C++ 里的 map、Java 里的 map、Python 里的 dict 等,类似于这种组织数据的方式叫做基于键值对的方式,与很多键值对数据库不同的是,Redis 中的值不仅可以是字符串,而且还可以是具体的数据结构,这样不仅能便于在许多应用场景的开发,同时也能提⾼开发效率。
  在Redis,key都是string,value可以是字符串(string)、哈希(hash)、列表(list)、集合(set)、有序集合(ordered set /zet)等数据结构。
  MySQL是通过表的方式来存储组织数据的,这种叫做关系型数据库,Redis是通过键值对的方式来存储组织数据的,这种叫做非关系行数据库。

1.3 Programmability(可编程的)

  在操作方面,Redis支持可以通过简单的交互式命令进行操作,也可以通过一些脚本(Lua)的方式批量执行一些操作。

1.4 Extensibility(可扩展的)

  可以在Redis原有的基础功能之上进行扩展,Redsi提供了一批API接口,可以通过(C/C++、Rust)来对Redis进行扩展(本质上就是一个动态链接库)。比如可以让Redis支持更多的数据结构或者命令。

1.5 Persistence(持久化)

  我们现在已经知道Redis是在内存种存放数据的,但是我们又知道内存的数据式易失的,比如进程退出、系统重启都会造成内存中的数据丢失,因此Redis也是支持持久化的。也就是内存中有一份数据,硬盘上也有一份数据,以内存为主,硬盘为辅的方式存储组织数据的。相当于就是用硬盘对数据进行一下备份,当遇突发情况时,可以恢复数据。

1.6 Clustering(集群)

  集群也就是支持水平扩展,类似于 “分库分表”。一个Redis能存储的数据是有限的,当遇到上限时,就需要引入多个主机,部署多个Redis节点,每个Redis存储数据的一部分。

1.7 High availablity(高可用)

  高可用的意思就是冗余/备份。Redis自身也是支持主从结构的,从节点就相当于主节点的备份,当主节点挂掉之后,从节点就会代替主节点进行工作,不至于服务直接挂掉。

2. 应用场景

2.1 Real-time data store(事实的数据存储)

  也就是把Redis当成一个数据库,当需要一个更低的延迟和一个更高的吞吐率时的实时存储时,就可以考虑使用Redis。在大多数情况下,我们平时优先考虑的是 “大”,但有时候可能会考虑 “快”,比如搜索引擎,大概率就是需要用Redis来存储数据。

2.2 Caching(缓存)

  见初始Redis,其中有关于缓存的讲解。

2.3 Streaming & messaging

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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com