Redis 中文文档(一)

Redis 中文文档(一)

Redis 简介

了解Redis开源项目

Redis是一个开源(BSD许可)的内存中数据结构存储,用作数据库、缓存、消息代理和流引擎。Redis提供数据结构,如字符串(strings)、散列(hash)、列表(lists)、集合(sets)、带范围查询的排序集合(sorted sets)、位图(bitmaps)、超日志(hyperloglogs)、地理空间索引(geospatial indexes)和流(streams)。Redis具有内置复制(replication)、Lua脚本、LRU驱逐(LRU eviction)、事务和不同级别的磁盘持久性,并通过Redis Sentinel和Redis Cluster的自动分区提供高可用性。

您可以对这些类型运行原子操作,例如:附加到字符串;递增散列中的值;将元素推送到列表中;计算集合交集、并集和差集;或者获得排序集合中排名最高的成员。

为了获得最佳性能,Redis使用内存中的数据集。根据您的使用情况,Redis可以通过定期将数据集转储到磁盘或将每个命令附加到基于磁盘的日志中来持久化您的数据。如果您只需要一个功能丰富、联网的内存缓存,也可以禁用持久性。

Redis支持异步复制(主从复制),具有快速非阻塞同步和自动重新连接,并在网络拆分上进行部分重新同步。

Redis还包括:

  • 事务 Transactions
  • 发布/订阅 Pub/Sub
  • Lua脚本 Lua scripting
  • 带超时时间的的keys Keys with a limited time-to-live
  • LRU逐出keys LRU eviction of keys
  • 自动故障切换 Automatic failover

您可以在大多数编程语言中使用Redis。

Redis是用ANSI C编写的,适用于大多数POSIX系统,如Linux、*BSD和Mac OS X,没有外部依赖关系。Linux和OS X是Redis开发和测试最多的两个操作系统,我们建议使用Linux进行部署。Redis可以在像SmartOS这样的Solaris派生系统中工作,但支持是最大的努力。没有官方对Windows版本的支持。

谁在使用Redis?

选择在生产中运行Redis的组织列表

正在使用Redis的知名公司列表:

还有许多其他人!techstacks.io使用Redis维护了一个热门网站列表。

Redis发布周期

Redis的新版本是如何发布的?

Redis是一种系统软件,也是一种保存用户数据的系统软件,因此它是软件堆栈中最关键的部分之一。

因此,Redis的发布周期确保了高度稳定的发布,即使是以较慢的周期为代价。

新版本发布在Redis GitHub存储库(Redis GitHub repository)中,也可以下载。公告会发送到Redis邮件列表(Redis mailing list)和推特上的@redisefeed(@redisfeed on Twitter)。

发布周期

给定版本的Redis可以具有三个不同的稳定性级别:

  • 不稳定的(Unstable)
  • 发布候选者(Release Candidate)
  • 稳定的(Stable)
不稳定版本(Unstable tree)

Redis的不稳定版本位于Redis GitHub存储库(Redis GitHub repository)中的不稳定分支中。

这个分支是大多数新功能正在开发中的源代码树。不稳定不被认为是生产就绪:它可能包含关键的bug、不完整的功能,并且可能不稳定。

然而,我们努力确保即使是不稳定的分支在开发环境中的大部分时间都是可用的,而不会出现重大问题。

发布候选者(Release Candidate)

Redis的新的次要和主要版本从不稳定分支的分叉开始。这些分支的名称是目标发布/版本(the target release)

例如,当Redis 6.0作为候选版本发布时,不稳定的分支被分叉到6.0分支。新分支是该版本的候选发布(RC)。

在发布的时间范围内可以稳定的修复BUG和添加新功能提交到不稳定的分支,并向后移植到候选发布分支。不稳定的分支可能包括不属于候选版本并计划用于未来版本的额外内容。

第一个候选版本,即RC1,一旦可以用于开发目的和测试新版本,就会发布。在这个阶段,新版本带来的大多数新功能和更改都已准备好接受审查,发布的目的是收集公众的反馈。

后续的候选版本大约每三周发布一次,主要是为了修复bug。此时也可能添加新功能并引入更改,但速度会降低,并降低最终候选版本的潜在风险。

稳定版本(Stable tree)

一旦开发结束,候选版本的关键错误报告频率下降,就可以为最终发布做好准备了。此时,该版本被标记为稳定版本,并以“0”作为其补丁级别版本发布。

版本控制

稳定版本完全遵循通常的major.minor.patch语义版本控制模式。主要目标是提供关于向后兼容性的明确保证。

修补程序级别版本(Patch-Level versions)

修补程序主要包括错误修复,很少引入任何兼容性问题。

从以前的补丁级别版本升级几乎总是安全无缝的。

只要这些功能和配置没有带来重大影响或引入与操作相关的问题,可以添加新的功能和配置指令,或者更改默认值。

次要版本(Minor versions)

次要版本通常提供成熟度和扩展的功能。

在次要版本之间升级不会引入任何应用程序级兼容性问题。

次要版本可能包括引入与操作相关的不兼容性的新命令和数据类型,包括数据持久性格式和复制协议的更改。

主要版本(Major versions)

主要版本引入了新功能和重大更改。

理想情况下,这些不会引入应用程序级兼容性问题。

发布时间表(Release schedule)

新的主要版本计划每年发布一次。

一般来说,每一个主要版本都会在六个月后发布一个次要版本。

补丁是根据需要发布的,以解决高度紧迫的问题,或者一旦稳定版本积累了足够的修复来证明它的合理性。

如需就敏感事项和安全问题联系核心团队,请发送电子邮件至redis@redis.io.

支持(Support)

通常,旧版本是不被支持的,因为我们努力使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 sponsors)

现任和前任Redis赞助商

2015年至2020年,Salvatore Sanfilippo关于Redis的工作由Redis有限公司赞助( Redis Ltd)。自2020年6月起,Redis有限公司赞助Redis的治理(governance of Redis)。Redis有限公司还赞助了Redis.io的托管和维护(redis.io)。

过去的赞助:
  • Shuttleworth基金会( Shuttleworth Foundation)以紧急赠款的形式向Redis项目捐赠了5000美元。
  • 2013年5月至2015年6月, Salvatore Sanfilippo 开发Redis的工作由Pivotal赞助。
  • 2013年5月之前,该项目由VMware赞助,Salvatore SanfilippoPieter Noordhuis参与其中。
  • VMware和后来的Pivotal为Salvatore提供了一个24 GB RAM工作站,用于运行Redis CI测试和其他长期运行的测试。后来,Salvatore为服务器配备了SSD驱动器,以便在具有旋转驱动器和闪存驱动器的相同硬件中进行测试。
  • 2010年1月,Linode为Redis在虚拟化环境中的测试提供了虚拟机。
  • Slicehost,2010年1月,为Redis在虚拟化环境中的测试提供了虚拟机。
  • Citrusbyte于2009年12月参与了虚拟内存的实施。
  • 2009年12月,Hitmeister参与了Redis集群。
  • 2009年12月,Engine Yard为阻塞POP(BLPOP)和部分虚拟内存实现做出了贡献。

同时感谢以下为本项目捐款的人士或组织:

Redis社区感谢Redis有限公司 (Redis Ltd.), Pivotal, VMware 以及为Redis项目捐款的其他公司和人员。非常感谢。

redis.io

Citrusbyte 赞助创建了Redis官方标志(由Carlos Prioglio设计),并将其版权转让给Salvatore Sanfilippo。

他们还赞助了Damian JanowskiMichel Martens 对该网站的初步实施。

redis.io域名由“我想要我的名字”(I Want My Name)捐赠给该项目几年。

关于Redis Stack

了解有关Redis Stack的更多信息

Redis Stack是使用Redis的最佳起点。我们已经将我们所能提供的最好的技术捆绑在一个易于使用的包中。Redis Stack扩展了Redis OSS的核心功能,为调试等提供了完整的开发者体验。

除了Redis OSS的所有功能外,Redis Stack还支持:

  • 概率数据结构
  • 可查询的JSON文档
  • 跨哈希和JSON文档查询
  • 时间序列数据支持(接收和查询),包括全文搜索
为什么选择Redis Stack?

Redis Stack的创建是为了让开发人员能够使用后端数据平台构建实时应用程序,该平台可以在几毫秒或更短的时间内可靠地处理请求。Redis Stack做到了这一点,它以最初的Redis OSS为核心,并用现代数据模型和数据处理工具对其进行了增强,并在每一个转折点上继续与复杂性作斗争。最终,Redis Stack的目标是建立一个实时数据平台,继续实现Redis OSS的理念:简单、性能和可靠性。

Redis Stack通过提供Redis领先功能所提供的所有前沿功能,统一并简化了Redis的开发者体验。RedisStack将以下功能捆绑到Redis中:JSON、搜索和查询、时间序列和概率(JSON, Search and Query, Time Series, and Probabilistic)。

总的愿景是为开发人员提供一个用于所有实时数据用例的强大平台。随着Redis在缓存之外的功能不断提升,Redis Stack是我们的起点。Redis Stack提供了开发人员喜爱的Redis核心功能,并帮助您构建性能至上的现代应用程序。

RedisInsight

开始使用Redis Stack的最佳方法是使用 RedisInsight ,这是一个用于理解和优化Redis数据的可视化工具。

RedisInsight允许您:

  • 使用浏览器工具直观地查看数据结构,并根据其名称空间对键进行分组。
  • 在大多数Redis Stack数据结构上使用CRUD。
  • 利用Workbench,这是一个高级命令行界面,具有智能命令自动完成和复杂的数据可视化功能。
  • 使用Profiler工具实时分析Redis的流量。
  • 随时使用嵌入式Redis CLI。
  • 使用内存分析工具分析内存使用情况。
  • 使用Slowlog工具识别并排除瓶颈。
Redis Stack packaging

有两种不同的Redis Stack软件包可供选择:

  • Redis Stack Server:这个包只包含Redis OSS和模块扩展。它不包含开发人员桌面应用程序RedisInsight。这个包最适合生产部署,并且是一个临时替换包(例如,如果您已经将Redis OSS部署为缓存)。您仍然可以单独下载RedisInsight。
  • Redis Stack:这个包在一个捆绑包中包含了开发人员所需的一切。这包括Redis Stack Server(Redis OSS和模块扩展)以及RedisInsight桌面应用程序(或docker容器的一部分)。如果你想在本地创建一个应用程序,并探索它如何与Redis交互,这就是适合你的软件包。
使用场景

探索Redis Stack提供的跨行业和应用程序的应用现代数据模型和处理引擎的用例(use cases)。

Note

这里描述的模块是通用的,我们只列出了有代表性的用例。

客户机(Clients)

几个Redis客户端库支持Redis Stack。其中包括redis-py, node_redis, NRedisStack, 和 Jedis。此外,四个更高级别的对象映射库也支持Redis Stack:Redis OM .NET, Redis OM Node, Redis OM Python, Redis OM Spring

Redis Stack许可证

Redis Stack由几个组件组成,授权如下:

  • Redis Stack Server结合了开源Redis与搜索和查询、JSON、时间序列和概率功能,根据Redis源可用许可证(RSALv2)和服务器端公共许可证( Server Side Public License SSPL)获得双重许可。下表显示了按Stack组件版本划分的许可细分。有关Redis许可的更多信息,请参阅许可证(Licenses)。
  • RedisInsight根据SSPL获得许可。
版本和许可证

截至2022年11月15日,我们的Redis Stack默认二进制发行版及其包含的Redis模块已根据RSALv2和SSPL获得双重许可。使用源代码时,可以应用RSALv2或SSPLv1。

ModuleRSALv1Binary distribution: RSALv2
Source code: RSALv2 or SSPLv1
Redis Stack<= 6.2.4>= 6.2.6
RediSearch<= 2.4>= 2.6
RedisJSON<= 2.2>= 2.4
RedisTimeSeries<=1.6>= 1.8
RedisBloom<= 2.2>=2.4

要快速使用Redis Stack,请参阅入门指南

Redis 企业版(Redis Enterprise)

Redis Enterprise是一款企业级Redis,可在本地(on-premises)和云(in the cloud)中(在AWS、谷歌云或Azure上)使用。Redis Enterprise简化了操作、扩展和多租户,包括许多集成(例如Kubernetes),并提供了多层支持。

继续阅读,了解Redis Enterprise及其扩展产品的优势。

概述

Redis, Inc.开发了开源和源代码可用技术,开发人员可以免费使用。其中包括:

  • Redis OSS:我们软件和服务的核心引擎
  • Redis Stack:对于希望获得Redis OSS所有功能和最新创新的开发人员来说,Redis Stack:Redis,Inc.必须在一个易于使用的软件包中提供所有功能。
  • Redis Enterprise:我们的商业产品。Redis Enterprise保持了Redis的简单性和高性能,同时添加了许多企业级功能,包括:
    • 线性扩展到每秒数亿次操作
    • 提高了高可用性,正常运行时间高达99.999%
    • 地理复制、活动-活动数据分发
    • 数据分层
    • 高级安全功能
    • 几个部署选项(托管云服务、软件包、K8)
    • 全天候支持

Redis Enterprise提供三种部署选项:

  • Software 软件
  • Cloud 云
  • Hybrid and Multi-cloud 混合和多云
Redis Enterprise Software

Redis Enterprise Software是Redis Enterprise的本地发行版。您可以随时随地下载、安装和管理Redis Enterprise Software集群:

  • IaaS云环境-亚马逊网络服务(AWS)、谷歌云和微软Azure
  • 专用数据中心中的裸机服务器
  • 虚拟机(VM)、Kubernetes pod等。

Redis提供了一个Kubernetes操作符,用于部署和管理Redis Enterprise集群。您可以在本地或私人或公共云中使用该运营商。

谷歌云市场还提供Redis Enterprise作为Kubernetes应用程序,以便于部署。

Redis Enterprise Cloud

Redis Enterprise Cloud是Redis提供的数据库即服务。完全管理的云服务基于Redis Enterprise,可通过自助服务门户访问,该门户允许您访问订阅/数据库控制平面。Redis,Inc.管理Redis Enterprise集群和底层基础设施的复杂性。

要开始,请参阅Redis企业云快速入门

如果您有任何问题,请告知支持人员

您也可以直接通过云提供商的市场购买和部署Redis Enterprise Cloud:

Notes:

  • Azure Cache for Redis Enterprise由Redis开发,但由微软作为Azure内的第一方服务提供和运营。
  • Redis为Microsoft客户提供二级支持。
Hybrid and multi-cloud deployments

Redis Enterprise支持使用Active Active复制的混合(本地/云)和多云部署:

  • 混合云与主动-结合自我管理的prem集群和Redis云集群

  • 具有Active Active的多云-多个完全管理的Redis云集群,具有跨多个云供应商(例如AWS和Google Cloud)的地理复制数据库

使用Redis Stack构建实时应用程序

Redis Stack 扩展了Redis OSS核心,提供了额外的数据模型和功能,如索引、查询和JSON数据支持。Redis Enteprise支持Redis Stack的所有功能,请参阅我们的Stack和Enterprise文档

Redis开发工具(Redis developer tools)
  • RedisInsight是一个面向开发人员的Redis桌面UI,可以帮助您优化Redis、可视化数据和调试应用程序。RedisInsight是Redis Stack的一部分,也可以与Redis OSS和Redis Enterprise一起使用。它在Linux、Windows和MacOS上跨平台运行。
  • Clients and connectors(客户端和连接器)-Redis Enterprise与Redis OSS完全兼容。任何标准的Redis客户端都可以与Redis Enterprise一起使用。
支持

您可以联系Redis客户成功团队(Redis Customer Success Team),以获得规划项目和实施以及维护和优化解决方案的帮助。Redis Customer Success将直接与您合作,提供个性化的客户和产品生命周期管理、最佳实践和专家指导。

Learn more

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值