Introduction to Redis
Learn about the Redis open source project
Redis is an open source (BSD licensed), in-memory data structure store used as a database, cache, message broker, and streaming engine. Redis provides data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes, and streams. Redis has built-in replication, Lua scripting, LRU eviction, transactions, and different levels of on-disk persistence, and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster.
You can run atomic operations on these types, like appending to a string; incrementing the value in a hash; pushing an element to a list; computing set intersection, union and difference; or getting the member with highest ranking in a sorted set.
To achieve top performance, Redis works with an in-memory dataset. Depending on your use case, Redis can persist your data either by periodically dumping the dataset to disk or by appending each command to a disk-based log. You can also disable persistence if you just need a feature-rich, networked, in-memory cache.
Redis supports asynchronous replication, with fast non-blocking synchronization and auto-reconnection with partial resynchronization on net split.
Redis also includes:
Transactions
Pub/Sub
Lua scripting
Keys with a limited time-to-live
LRU eviction of keys
Automatic failover
You can use Redis from most programming languages.
Redis is written in ANSI C and works on most POSIX systems like Linux, *BSD, and Mac OS X, without external dependencies. Linux and OS X are the two operating systems where Redis is developed and tested the most, and we recommend using Linux for deployment. Redis may work in Solaris-derived systems like SmartOS, but support is best effort. There is no official support for Windows builds.
Whos using Redis?
Select list of organizations running Redis in production
A list of well known companies using Redis:
GitHub
Snapchat
Craigslist
StackOverflow
And many others! techstacks.io maintains a list of popular sites using Redis.
Redis open source governance
Governance model for the Redis open source project
From 2009-2020, Salvatore Sanfilippo built, led, and maintained the Redis open source project. During this time, Redis had no formal governance structure, operating primarily as a BDFL-style project.
As Redis grew, matured, and expanded its user base, it became increasingly important to form a sustainable structure for its ongoing development and maintenance. Salvatore and the core Redis contributors wanted to ensure the projectrsquo;s continuity and reflect its larger community. With this in mind, a new governance structure was adopted.
Current governance structure
Starting on June 30, 2020, Redis adopted a light governance model that matches the current size of the project and minimizes the changes from its earlier model. The governance model is intended to be a meritocracy, aiming to empower individuals who demonstrate a long-term commitment and make significant contributions.
The Redis core team
Salvatore Sanfilippo named two successors to take over and lead the Redis project: Yossi Gottlieb (yossigo) and Oran Agra (oranagra)
With the backing and blessing of Redis Ltd., we took this opportunity to create a more open, scalable, and community-driven “core team” structure to run the project. The core team consists of members selected based on demonstrated, long-term personal involvement and contributions.
The current core team members are:
Project Lead: Yossi Gottlieb (yossigo) from Redis Ltd.
Project Lead: Oran Agra (oranagra) from Redis Ltd.
Community Lead: Itamar Haber (itamarhaber) from Redis Ltd.
Member: Zhao Zhao (soloestoy) from Alibaba
Member: Madelyn Olson (madolson) from Amazon Web Services
The Redis core team members serve the Redis open source project and community. They are expected to set a good example of behavior, culture, and tone in accordance with the adopted Code of Conduct. They should also consider and act upon the best interests of the project and the community in a way that is free from foreign or conflicting interests.
The core team will be responsible for the Redis core project, which is the part of Redis that is hosted in the main Redis repository and is BSD licensed. It will also aim to maintain coordination and collaboration with other projects that make up the Redis ecosystem, including Redis clients, satellite projects, major middleware that relies on Redis, etc.
Roles and responsibilities
The core team has the following remit:
Managing the core Redis code and documentation
Managing new Redis releases
Maintaining a high-level technical direction/roadmap
Providing a fast response, including fixes/patches, to address security vulnerabilities and other major issues
Project governance decisions and changes
Coordination of Redis core with the rest of the Redis ecosystem
Managing the membership of the core team
The core team aims to form and empower a community of contributors by further delegating tasks to individuals who demonstrate commitment, know-how, and skills. In particular, we hope to see greater community involvement in the following areas:
Support, troubleshooting, and bug fixes of reported issues
Triage of contributions/pull requests
Decision making
Normal decisions will be made by core team members based on a lazy consensus approach: each member may vote 1 (positive) or -1 (negative). A negative vote must include thorough reasoning and better yet, an alternative proposal. The core team will always attempt to reach a full consensus rather than a majority. Examples of normal decisions:lt;
剩余内容已隐藏,支付完成后下载完整资料
附录A 译文
1 Redis简介
Redis是一个开源(BSD许可)内存中数据结构存储,用作数据库、缓存、消息代理和流引擎。Redis提供数据结构,如字符串、哈希、列表、集、带范围查询的排序集、位图、超日志、地理空间索引和流。Redis具有内置的复制、Lua脚本、LRU逐出、事务和不同级别的磁盘持久性,并通过Redis Sentinel和Redis Cluster的自动分区提供高可用性。
您可以对这些类型运行原子操作,例如追加到字符串;在哈希中递增值;将元素推送到列表;计算集交集、并集和差分;或获取排序集中排名最高的成员。
为了实现最佳性能,Redis使用内存中数据集。根据您的使用案例,Redis可以通过定期将数据集转储到磁盘或将每个命令附加到基于磁盘的日志来持久保存您的数据。如果您只需要功能丰富、网络化的内存中缓存,也可以禁用持久性。
Redis支持异步复制,具有快速的非阻塞同步和自动重新连接,并在网络拆分时进行部分重新同步。
Redis还包括:
-
- 交易
- 发布/订阅
- Lua脚本
- 使用时间有限的密钥
- LRU逐出密钥
- 自动故障转移
您可以使用大多数编程语言中的Redis。
Redis是用ANSI C编写的,适用于大多数POSIX系统,如Linux,*BSD和Mac OS X,没有外部依赖关系。Linux和OS X是Redis开发和测试最多的两个操作系统,我们建议使用Linux进行部署。Redis可以在Solaris派生的系统中工作,比如SmartOS,但支持是尽力而为。没有对Windows内部版本的官方支持。
-
- 谁在使用Redis?
选择在生产环境中运行Redis的组织列表
使用Redis的知名公司列表:
- GitHub
- Snapchat
- Craigslist
- StackOverflow
还有许多其他人!techstacks.io维护使用Redis的热门网站列表。
-
- Redis开源治理
Redis开源项目的治理模型
从2009年到2020年,Salvatore Sanfilippo构建,领导和维护Redis开源项目。在此期间,Redis没有正式的治理结构,主要作为BDFL风格的项目运营。
随着Redis的成长、成熟和扩大其用户群,形成一个可持续的结构来持续开发和维护变得越来越重要。Salvatore和Redis的核心贡献者希望确保项目的连续性并反映其更大的社区。考虑到这一点,采用了新的治理结构。
目前的治理结构
从2020年6月30日开始,Redis采用了与项目当前规模相匹配的轻量级治理模型,并最大限度地减少了与早期模型相比的变化。治理模式旨在成为一种任人唯贤的管理,旨在赋予那些表现出长期承诺并做出重大贡献的个人权力。
Redis核心团队
Salvatore Sanfilippo任命了两位继任者接管并领导Redis项目:Yossi Gottlieb(yossigo)和Oran Agra(oranagra)。
在Redis Ltd.的支持和祝福下,我们借此机会创建了一个更加开放,可扩展和社区驱动的“核心团队”结构来运行该项目。核心团队由根据已证明的长期个人参与和贡献选出的成员组成。
目前的核心团队成员有:
项目负责人:来自Redis Ltd.的Yossi Gottlieb(Yossigo)
项目负责人:Redis Ltd.的Oran Agra(oranagra)
社区负责人:来自Redis Ltd的Itamar Haber(itamarhaber)。
成员:赵昭(独奏)来自阿里巴巴
成员:来自Amazon Web Services的Madelyn Olson(madolson)
Redis核心团队成员为Redis开源项目和社区提供服务。他们应该根据所通过的行为准则树立行为,文化和基调的良好榜样。他们还应该以一种没有外国或冲突利益的方式考虑项目和社区的最佳利益并采取行动。
核心团队将负责Redis核心项目,这是Redis的一部分,托管在主Redis存储库中,并获得BSD许可。它还将致力于与构成Redis生态系统的其他项目保持协调和协作,包括Redis客户端,卫星项目,依赖Redis的主要中间件等。
角色和职责
核心团队具有以下职责:
管理核心Redis代码和文档
管理新的Redis版本
维护高水平的技术方向/路线图
提供快速响应,包括修复/补丁,以解决安全漏洞和其他主要问题
项目管理决策和变更
Redis核心与Redis生态系统其余部分的协调
管理核心团队的成员资格
核心团队旨在通过进一步将任务委派给表现出承诺,专业知识和技能的个人来形成并授权贡献者社区。特别是,我们希望看到社区在以下领域有更多的参与:
对报告的问题的支持、故障排除和错误修复
贡献/拉取请求的会审
决策
核心团队成员将根据懒惰的共识方法做出正常决策:每个成员可以投票 1(正面)或-1(负面)。反对票必须包括彻底的推理,更好的是,另一种提案。核心团队将始终试图达成完全的共识,而不是多数。正常决策示例:
拉取请求和关闭问题的日常审批
开放新问题供讨论
对Redis架构、设计或理念以及核心团队结构或成员变更有重大影响的重大决策最好由完全协商一致决定。如果团队无法达成完全共识,则需要多数票。重大决策示例:
- 对Redis核心的根本性更改
- 添加新的数据结构
- 创建新版本的RESP(Redis序列化协议)
- 影响向后兼容性的更改
- 添加或更改核心团队成员
- 项目负责人有权否决重大决策
核心团队成员
核心团队预计不会终身服务,但是,希望长期参与,以便在Redis编程风格和社区中提供稳定性和一致性。
如果必须更换由Redis Ltd.资助的核心团队成员,则Redis Ltd.将在与其余核心团队成员协商后指定替代者。
如果非Redis Ltd.资助的核心团队成员因任何原因不再参与,其他团队成员将选择替代者。
社区论坛和交流
我们希望Redis社区尽可能地热情和包容。为此,我们通过了一项行为准则,要求所有社区成员阅读并遵守该准则。
我们鼓励所有重要的通信都是公开的、异步的、存档的,并开放给社区,以便社区积极参与使用此处描述的渠道。例外情况是敏感的安全问题,需要在公开披露之前解决。
要就敏感问题(例如不当行为或安全问题)联系核心团队,请发送电子邮件 redis@redis.io。
新的Redis存储库和提交审批流程
Redis核心源代码存储库托管在https://github.com/redis/redis下。我们的目标是最终在Redis GitHub组织(https://github.com/redis)下托管所有内容(Redis核心源代码和其他生态系统项目)。提交到Redis源存储库将需要代码审查,至少一个不是提交作者的核心团队成员的批准,并且没有异议。
项目和开发更新
与项目和社区保持联系!有关项目和社区更新,请关注项目频道。开发公告将通过Redis邮件列表发布。
这些治理规则的更新
对这些规则的任何实质性更改都将被视为重大决定。小改动或部级改正将被视为正常决定。
-
- Redis发布周期
Redis的新版本是如何发布的?
Redis是系统软件和一种保存用户数据的系统软件,因此它是软件堆栈中最关键的部分之一。
出于这个原因,Redis的发布周期是这样的,它确保了高度稳定的发布,即使以较慢的周期为代价。
新版本发布在Redis GitHub存储库中,也可供下载。公告将发送到Redis邮件列表,并由Twitter上的@redisfeed。
发布周期
给定版本的Redis可以具有三种不同的稳定性级别:
- 不稳定
- 发布候选版本
- 稳定
- 不稳定的树
Redis的不稳定版本位于Redis GitHub存储库中的不稳定分支中。
此分支是大多数新功能正在开发的源树。不稳定不被视为生产就绪:它可能包含关键错误,不完整的功能,并且可能不稳定。
但是,我们努力确保即使是不稳定的分支在开发环境中大部分时间都可用,而不会出现重大问题。
发布候选版本
Redis 的新次要和主要版本开始作为不稳定分支的分支。分叉分支的名称是目标版本
例如,当Redis 6.0作为候选版本发布时,不稳定的分支被分叉到6.0分支中。新分支是该版本的候选版本(RC)。
可以在发布的时间范围内稳定下来的Bug修复和新功能将提交到不稳定分支,并向后移植到候选版本分支。不稳定分支可能包括不属于候选版本并计划在将来发布的其他工作。
第一个候选版本(RC1)一旦可用于开发目的和测试新版本,就会发布。在这个阶段,新版本带来的大多数新功能和更改都已准备好进行审核,发布的目的是收集公众的反馈。
后续候选版本每三周左右发布一次,主要用于修复错误。这些也可能增加新功能并引入更改,但速度会降低,最终候选版本的潜在风险也会降低。
稳定树
一旦开发结束,候选版本的关键错误报告的频率降低,它就为最终版本做好了准备。此时,该版本被标记为稳定版本,并以“0”作为其修补程序级别版本发布。
版本控制
稳定版本自由地遵循通常的main.minor.patch语义版本控制模式。主要目标是提供有关向后兼容性的显式保证。
修补程序级别版本
补丁主要由错误修复组成,很少引入任何兼容性问题。
从以前的补丁级版本升级几乎总是安全无缝的。
可以添加新功能和配置指令,或者更改默认值,只要它们不会产生重大影响或引入与操作相关的问题。
次要版本:
次要版本通常提供成熟度和扩展功能。
次要版本之间的升级不会引入任何应用程序级兼容性问题。
次要版本可能包括引入与操作相关的不兼容性的新命令和数据类型,包括数据持久性格式和复制协议的更改。
主要版本:
主要版本引入了新功能和重大更改。
理想情况下,这些不会引入应用程序级兼容性问题。
发布时间表
新的主要版本计划每年发布一次。
通常,每个主要版本在六个月后都会有一个次要版本。
根据需要发布补丁以修复高紧急问题,或者一旦稳定版本积累了足够的修复来证明其合理性。
支持
通常,旧版本不受支持,因为我们非常努力地使Redis API大部分向后兼容。
升级到较新版本是推荐的方法,通常很简单。
最新的稳定版本始终得到完全支持和维护。
另外两个版本仅接受维护,这意味着仅提交针对关键错误和主要安全问题的修复并作为补丁发布:
最新稳定版的先前次要版本。
以前的稳定主要版本。
例如,考虑以下假设版本:1.2、2.0、2.2、3.0、3.2。
当版本2.2是最新的稳定版本时,将同时保留2.0和1.2。
一旦版本3.0.0将2.2替换为最新的稳定版,版本2.0和2.2 将保持不变,而版本1.x将达到其生命周期。
此过程在版本3.2.0中重复,之后仅保留版本2.2和3.0。
以上是指导方针,而不是一成不变的规则,不会取代常识。
-
- Redis赞助商
现任和前任Redis赞助商
从2015年到2020年,Salvatore Sanfilippo在Redis上的工作由Redis Ltd.赞助。自2020年6月以来,Redis Ltd.一直赞助Redis的治理。Redis Ltd.还赞助托管和维护redis.io。
过去的赞助:
沙特尔沃思基金会以闪电赠款的形式向Redis项目捐赠了5000美元。
从2013年5月到2015年6月,Salvatore Sanfilippo为开发Redis所做的工作得到了Pivotal的赞助。
在2013年5月之前,该项目由VMware赞助,由Salvatore Sanfilippo和Pieter Noordhuis共同完成。
VMware和后来的Pivotal为Salvatore提供了一个24GB的RAM工作站,用于运行Redis CI测试和其他长时间运行的测试。后来,Salvatore为服务器配备了SSD驱动器,以便在具有旋转驱动器和闪存驱动器的相同硬件中进行测试。
Linod
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[590406],资料为PDF文档或Word文档,PDF文档可免费转换为Word
课题毕业论文、文献综述、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。