Redis 6.0 数据库管理系统发布

准备好了 数据库管理系统发布 Redis的6.0,属于NoSQL系统类。 Redis 提供类似 Memcached 的功能来存储键/值数据,并通过支持结构化数据格式(例如列表、散列和集合)以及运行服务器端 Lua 处理程序脚本的能力来增强功能。 项目代码 提供 在 BSD 许可下。 自去年以来为企业用户提供高级功能的其他模块,例如 RediSearch、RedisGraph、RedisJSON、RedisML、RedisBloom 提供的 根据专有 RSAL 许可证。 该项目将继续在 AGPLv3 许可证下开发这些模块的开放版本 好形式.

与Memcached不同,Redis提供磁盘上数据的持久存储,并在紧急关闭时保证数据库的安全。 该项目的源代码在 BSD 许可证下分发。 客户端库适用于大多数流行语言,包括 Perl、Python、PHP、Java、Ruby 和 Tcl。 Redis支持事务,它允许你一步执行一组命令,保证一组给定命令执行过程中的一致性和一致性(来自其他请求的命令不能干扰),并且在出现问题时,允许你回滚变化。 所有数据都完全缓存在 RAM 中。

为数据管理提供了递增/递减、标准列表和集合操作(​​并集、交集)、键重命名、多重选择和排序功能等命令。 支持两种存储模式:定期将数据同步到磁盘以及在磁盘上维护更改日志。 在第二种情况下,保证所有更改的完全安全。 可以将主从数据复制组织到多个服务器,以非阻塞模式进行。 还可以使用“发布/订阅”消息模式,在该模式中创建一个通道,通过订阅将消息分发给客户端。

钥匙 改进Redis 6.0中添加:

  • 默认情况下,建议使用新的 RESP3 协议,但连接建立以 RESP2 模式开始,并且仅当协商连接时使用新的 HELLO 命令时客户端才会切换到新协议。 RESP3 允许您直接返回复杂数据类型,无需在客户端转换泛型数组,也无需分离返回类型。
  • 访问控制列表支持(ACL),让您准确判断哪些操作可以由客户端执行,哪些操作不能由客户端执行。 ACL 还可以防止开发期间可能出现的错误,例如,可以禁止仅执行 BRPOPLPUSH 操作的处理程序执行其他操作,如果在生产代码中不小心忘记了调试期间添加的 FLUSHALL 调用,这将导致不会导致问题。 实施 ACL 不会产生任何额外的开销,并且对性能几乎没有影响。 还为 ACL 准备了接口模块,使您可以创建自己的身份验证方法。 要查看所有记录的 ACL 违规,提供了“ACL LOG”命令。 为了生成不可预测的会话密钥,已使用基于 SHA256 的 HMAC 添加了“ACL GENPASS”命令。
  • Поддержка SSL / TLS 对客户端和服务器之间的通信通道进行加密。
  • Поддержка 在客户端缓存数据。 为了使客户端缓存与数据库状态保持一致,有两种模式可用: 1. 在服务器上记住客户端先前请求的密钥,以便通知它客户端缓存中条目的相关性丢失。 2.“广播”机制,客户端订阅某些密钥前缀,如果这些前缀下的密钥发生变化,服务器会通知它。 “广播”模式的优点是服务器不会浪费额外的内存来存储客户端缓存的值的映射,但缺点是传输的消息数量会增加。
  • Disque 消息代理允许您使用 Redis 处理消息队列,已从基本结构中删除 独立模块.
  • 额外 集群代理,Redis 服务器集群的代理,允许客户端组织与多个 Redis 服务器的工作,就好像它们是单个实例一样。 代理可以将请求路由到具有必要数据的节点、多路复用连接、在检测到节点故障时重新配置集群以及执行跨多个节点的请求。
  • 用于编写模块的 API 得到了显着改进,本质上将 Redis 变成了一个框架,允许您以附加模块的形式创建系统。
  • 已经实现了复制模式,其中RDB文件在使用后立即被删除。
  • PSYNC2 复制协议得到了改进,通过增加识别副本和主服务器公共偏移的机会,可以更频繁地执行部分重新同步。
  • RDB 文件的加载速度已加快。 根据文件内容,加速范围为 20% 到 30%。 当有大量连接的客户端时,INFO 命令的执行速度显着加快。
  • 添加了新的 STRALGO 命令,用于实现复杂的字符串处理算法。 目前,只有一种 LCS(最长公共子序列)算法可用,该算法在比较 RNA 和 DNA 序列时很有用。

来源: opennet.ru

添加评论