视野 | KeyDB:为 Web 应用而生的高性能 Redis 分支

王奇 顾问软件工程师
目前从事 PaaS 中间件服务(Redis / MongoDB / ELK 等)开发工作,对 NoSQL 数据库有深入的研究以及丰富的二次开发经验,热衷对 NoSQL 数据库领域内的最新技术动态的学习,能够把握行业技术发展趋势。

随着 Web 2.0 的不断发展,业务需求也不断变化。Redis 是一款诞生于 2009 年的高性能内存键值数据库,在近十年的互联网架构中承担了不可替代的作用,实现了很多复杂的业务需求,深受技术爱好者的喜爱。近些年 Web 3.0 概念的提出也为 Redis 提出了更高的挑战。

背景

最近客户提出一个问题:

Redis 能否在不增加资源的场景下明显提高QPS?

这是个看似不合理的问题,用户的需求是 QPS 提高,但不增加资源投入。一般提高 QPS 的思路大多是横向扩展,集群节点数越多 QPS 就越高,但成本也就越高。如果想要达成这个诉求,那 KeyDB[1] 也许是一个不错的选择。

KeyDB 简介

视野 | KeyDB:为 Web 应用而生的高性能 Redis 分支

图片来源:https://keydb.dev/

KeyDB 是 Redis 的分支,专注于多线程、内存效率和高吞吐量。除了多线程之外,KeyDB 还具有仅在 Redis Enterprise 中才能使用的功能,例如:Active Replication、FLASH 存储,直接备份到 S3,且对 Redis 完全兼容。

仓库地址:https://github.com/EQ-Alpha/KeyDB

设计差异

Redis 是采用单线程设计的典范,在效率和性能之间有独特的设计逻辑。

KeyDB 将 Redis 主线程拆分为主线程和 Worker 线程。其中,每个 Worker 线程都是一条 I/O 线程,负责监听端口和 Accept 请求,优化读取数据和解析协议,可大幅度提升 I/O 性能。

视野 | KeyDB:为 Web 应用而生的高性能 Redis 分支

功能优势

1、跨域多主

KeyDB 支持多个异步复制架构的主节点彼此同步。支持复制架构中所有节点都是主节点,不需要哨兵监控节点。在 Redis 原有的高可用架构之外,又增加了新的架构思路。

2、垂直和水平缩放

KeyDB 是多线程设计,可以支持垂直/水平扩展,最大化资源利用率。对于那些 Redis 实例达到设备上线的情况,这是一个很好的替代选择。使用标准 KeyDB 节点最多可有效使用 10 个内核,启用 TLS 时可有效使用 16 个内核!

3、更方便的生存时间设置

KeyDB 提供了 Subkey EXPIRE,可以精确设置集合中成员的过期时间。EXPIREs 现在还具有近乎实时的主动删除功能。

4、TLS 加密

KeyDB 提供 TLS 支持,其吞吐量是 Redis + TLS 的 7 倍!

虽然 TLS 加密增加了额外的 CPU 开销,但 KeyDB 的多线程架构支持更多的工作线程来防止性能下降。

5、ModJS

可以使用 KeyDB 开源的 Javascript 模块创建自定义命令。建立在强大的 V8 JIT 引擎之上,ModJS 比 LUA 更快,并支持许多 node.js 模块,为常见任务提供广泛的库支持。

6、ARM 支持

KeyDB 支持 ARM。

性能优势

视野 | KeyDB:为 Web 应用而生的高性能 Redis 分支

图片来源:KeyDB 官网

总结

也许您对官方的性能数据存疑,下一期我们将对 KeyDB 和 Redis 进行更全面的性能测试,希望给客户的提问一个更全面的回答,敬请期待。

参考引用

[1]:KeyDB:https://keydb.dev/

Original: https://www.cnblogs.com/radondb/p/15867003.html
Author: RadonDB
Title: 视野 | KeyDB:为 Web 应用而生的高性能 Redis 分支

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/507834/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 容器化 | 构建 RadonDB MySQL 集群监控平台

    上一篇文章我们演示了如何《在 S3 备份恢复 RadonDB MySQL 集群数据》,本文将演示在 KubeSphere[1] 中使用 Prometheus[2] + Grafan…

    数据库 2023年5月24日
    072
  • Node版本更新及切换

    Node版本升级 清除npm缓存 npm cache clean -f n&#x6A…

    数据库 2023年6月16日
    0109
  • MySQL–SELECT检索语句

    1、检索单个列 SELECT prod_name FROM products; –上述语句利用 SELECT语句从 products表中检索一个名为prod_name的列。 Vi…

    数据库 2023年6月16日
    081
  • MySQL安装配置

    一.下载安装 二.配置 一.下载安装 地址: 官方地址(可能速度不好):https://dev.mysql.com/downloads/mysql/ 网盘直链地址(速度比较快):h…

    数据库 2023年5月24日
    081
  • MySQL实战45讲 6,7,8

    06 | 全局锁和表锁 :给表加个字段怎么有这么多阻碍? Connection连接与Session会话 通俗来讲,会话(Session)是通信双⽅从开始通信到通信结束期间的⼀个上下…

    数据库 2023年6月16日
    077
  • Java基础三—Object对象

    Object通用方法 public final native Class<?> getClass() public native int hashCode() publ…

    数据库 2023年6月6日
    078
  • Redis-缓存雪崩,击穿,穿透

    小结 布隆过滤器 工作原理:布隆过滤器是一个由初值为0的长度为L的bit数组和N个哈希函数组成。当有向数据库写入操作时,对键进行N次哈希值计算,并对计算后的值取L的模,对数组相应位…

    数据库 2023年6月11日
    054
  • mysql-存储引擎

    1.存储引擎 完整的建表语句:CREATE TABLE dept ( DEPTNO int(2) NOT NULL, DNAME varchar(14) DEFAULT NULL,…

    数据库 2023年5月24日
    076
  • MySQL学习(1)—MySQL概述

    什么是数据库 概述 数据库(Database)是长期存储在计算机内有组织、大量、共享的数据集合。它可以供各种用户共享,具有最小冗余度和较高的数据独立性。数据库管理系统DBMS(Da…

    数据库 2023年6月14日
    081
  • 如何用axios加后端数据库传值给前端

    小杰笔记: 如何用axios : 第一步:编写数据库实体类 @Data @AllArgsConstructor @NoArgsConstructor public class Us…

    数据库 2023年6月6日
    0122
  • 使用 GitHub 协同开发规范

    记一下项目开发的规范,统一开发规范可以有效提高共同开发效率和代码质量 本文档图片的 winsoullin 理解为团队正式发布的仓库,Nightnessss 理解为个人仓库 Fork…

    数据库 2023年6月9日
    0107
  • ASP.NET(AngelShop)基于多供应商外贸商城管理系统发布

    ============================================================================Angel工作室ASP.NE…

    数据库 2023年6月14日
    074
  • Linux–>进程管理

    基本介绍 在Linux中, 每个执行程序都称为一个进程。每一个进程都会分配一个ID号(pid,进程号) 每个进程都可能以俩种方式存在的。分别是 前台与 后台,所谓前台进程就是用户目…

    数据库 2023年6月14日
    095
  • tomcat

    tomcat 一.简介 二.部署tomcat 一.简介 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场…

    数据库 2023年6月14日
    079
  • B树详解

    B树系列文章 1. B树-介绍 2. B树-查找 3. B树-插入 4. B树-删除 什么是B树 B树(英语:B-tree)是一种自平衡的树,能够保持数据有序。使用B树这种数据结构…

    数据库 2023年6月14日
    091
  • 使用MySQL,SQL_MODE有哪些坑,你知道么?

    SQL_MODE是MySQL中的一个系统变量(variable),可由多个MODE组成,每个MODE控制一种行为,如是否允许除数为0,日期中是否允许’0000-00-0…

    数据库 2023年6月11日
    077
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球