当前位置:网站首页>视野 | KeyDB:为 Web 应用而生的高性能 Redis 分支
视野 | KeyDB:为 Web 应用而生的高性能 Redis 分支
2022-07-30 05:08:00 【RadonDB】
王奇 顾问软件工程师
目前从事 PaaS 中间件服务(Redis / MongoDB / ELK 等)开发工作,对 NoSQL 数据库有深入的研究以及丰富的二次开发经验,热衷对 NoSQL 数据库领域内的最新技术动态的学习,能够把握行业技术发展趋势。
随着 Web 2.0 的不断发展,业务需求也不断变化。Redis 是一款诞生于 2009 年的高性能内存键值数据库,在近十年的互联网架构中承担了不可替代的作用,实现了很多复杂的业务需求,深受技术爱好者的喜爱。近些年 Web 3.0 概念的提出也为 Redis 提出了更高的挑战。
背景
最近客户提出一个问题:
Redis 能否在不增加资源的场景下明显提高QPS?
这是个看似不合理的问题,用户的需求是 QPS 提高,但不增加资源投入。一般提高 QPS 的思路大多是横向扩展,集群节点数越多 QPS 就越高,但成本也就越高。如果想要达成这个诉求,那 KeyDB[1] 也许是一个不错的选择。
KeyDB 简介

图片来源: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 性能。

功能优势
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 官网
总结
也许您对官方的性能数据存疑,下一期我们将对 KeyDB 和 Redis 进行更全面的性能测试,希望给客户的提问一个更全面的回答,敬请期待。
参考引用
[1]:KeyDB:https://keydb.dev/
边栏推荐
- 工作效率-十五分钟让你快速学习Markdown语法到精通排版实践备忘
- go language study notes 2
- Protobuf compound data types, speaking, reading and writing
- Simulation problem (below)
- The Double Pointer Problem (Part 2)
- L2-025 分而治之
- C. Travelling Salesman and Special Numbers (binary + combination number)
- SaaS多租户数据隔离的三种解决方案
- 坪山区关于开展2022年度科技创新专项资金申报工作的通知
- 容器化 | 构建 RadonDB MySQL 集群监控平台
猜你喜欢

Using the GPU parallel computing 】 【 OpenCL&OpenCLUtilty GPU parallel computing

为Bitbucket 和 Sourcetree 设置SSL认证

Us to raise interest rates by 75 basis points in "technical recession"?Encryption market is recovering

给小白的 PostgreSQL 容器化部署教程(上)

Plan for many situations in the processing chain

工作效率-十五分钟让你快速学习Markdown语法到精通排版实践备忘

mysql cannot connect remotely Can't connect to MySQL server on 'xxx.xxx.xxx.xxx' (10060 "Unknown error")

模拟问题(中)

IGBT wafers used in photovoltaic inverters

How with Mexico Volkswagen VW EDI connection to Mexico
随机推荐
go language study notes 4
IIS网站出现401未授权访问
3. Dependency configuration management
Shi Xingguo, founder of Hyperchain, was interviewed by 21st Century Business Herald to interpret Shanghai's new NFT regulations and digital development
六、读取应用配置+日志配置
容器化 | 构建 RadonDB MySQL 集群监控平台
go语言学习笔记二
LeetCode Algorithm 328. 奇偶链表
Get the local IP and Request's IP
[Android development] Splash interface / user agreement and privacy policy pop-up window / interface development
Record of problems encountered by the pyinstaller packager
工作效率-十五分钟让你快速学习Markdown语法到精通排版实践备忘
开源之夏 2022 重磅来袭!欢迎报名 RadonDB 社区项目!
SVN View Username and Password
Kyligence 出席华为全球智慧金融峰会,加速拓展全球市场
Discourse Custom Header Links
双指针问题(上)
涂鸦Wi-Fi&BLE SoC开发幻彩灯带
【Verilog】HDLBits题解——Circuits/Combinational Logic
String problem (below)