作者:微信小助手
发布时间:2023-10-23T09:34:10
Redis 解析信息图
Redis("REmote DIctionary Service" 的缩写)是一个开源的键值数据库服务器。
对 Redis 最准确的描述是它是一个数据结构服务器。Redis 的这种特定性质使其在开发人员中非常受欢迎和广泛采用。
与其对行进行迭代、排序和排列,不如从头开始使用数据结构来存储数据?早期,Redis 像 Memcached 一样使用,但随着 Redis 的改进,它变得可行于许多其他用例,包括发布-订阅机制、流处理和队列。
用于存储的 Redis 数据类型
主要地,Redis 是一个内存中的数据库,用作其他“真实”数据库(如 MySQL 或 PostgreSQL)前面的缓存,以帮助提高应用程序的性能。它充分利用了内存的速度,并减轻了中央应用程序数据库的负载,用于以下情况:
•很少更改但经常请求的数据•较不关键但经常演化的数据。
上述数据的示例可以包括会话或数据缓存以及仪表板的排行榜或汇总分析。
Redis 如何用于缓存
然而,对于许多用例,Redis 提供了足够的保证,可以用作一个功能齐全的主数据库。结合 Redis 插件和各种高可用性(HA)设置,Redis 作为数据库对于某些场景和工作负载变得非常有用。
另一个重要的方面是,Redis 模糊了缓存和数据存储之间的界限。在内存中读取和操作数据比在传统数据存储中使用 SSD 或 HDD 更快,这一点非常重要。
每位软件工程师都应该了解的重要延迟和带宽数据。
最初,Redis 最常与 Memcached 进行比较,后者在当时没有任何非易失性持久性。
Memcached 由 Brad Fitzpatrick 于 2003 年创建,比 Redis 提前了六年。它最初是一个 Perl 项目,后来被重写为 C 语言。它是当时的事实上的缓存工具。它与 Redis 的主要区别在于它缺乏数据类型和仅支持 LRU(最近最少使用)的有限驱逐策略。
另一个区别是,Redis 是单线程的,而 Memcached 是多线程的。在严格的缓存环境中,Memcached 可能性能不错,但在分布式集群中需要进行一些设置,而 Redis 则可以立即支持此功能。
下面是这两个缓存之间功能的当前比较。
Memcached | Redis | |
亚毫秒延迟 | 是 | 是 |
开发者易用性 | 是 | 是 |
数据分区 | 是 | 是 |
广泛支持的编程语言 | 是 | 是 |
高级数据结构 | - | 是 |
多线程架构 | 是 | - |
快照 | - | 是 |
复制 | - | 是 |
事务 | - | 是 |
发布/订阅 | - | 是 |
Lua 脚本 | - | 是 |