ioredis是一款基于Node.js,定位于“高性能、功能强大且齐全”的Redis客户端。其作者为中国人子骅luin。
其技术原理为只需要一次socket写入操作,使用管道方式等批次执行指令,这比其它客户端更高效。
示范代码如下:
const Redis = require('ioredis');
const redis = new Redis()
async function main() {
const pipeline = redis.pipeline()
pipeline.set('foo', 'bar')
pipeline.get('foo')
pipeline.set('count', 1)
pipeline.incr('count')
pipeline.get('count')
pipeline.del('foo')
const results = await pipeline.exec()
console.log(results)
}
(async () => {
await main()
})()
目前,其企业用户已经包括了阿里巴巴等大型互联网的技术团队。
而近日,作者@luin自豪地宣布,他写的客户端软件已经被Redis官方正式收购了。
目前看操作已经完成,其项目也已经从自身官网移到了GitHub:
https://github.com/redis/ioredis
两年前,“ioredis” 正式超过一款称为“ redis”的Redis客户端,成为 Node.js 技术堆栈中最流行的 Redis 客户端。
那时候, 作者还感叹 redis 历经诸多波折磨难:
2014 年底的时候我开始使用 Node.js 开发后端程序。
为了连接 Redis ,所以研究了下市面上的 Redis 客户端库。
当时最流行的库 redis 是由 Uber 的首席架构师 Matt Ranney 开发的。
使用后发现这个库有一些让自己不满意的地方:
不支持 Promise (当时 Promise 还是个非常新的概念)
1 命令语法不太美观(个人审美差异😄)
2 功能不齐全:缺少 Cluster 、Sentinel 等 Redis 新功能的支持。
3 由于当时正好有点闲暇时间,就自己从零开发并开源了 ioredis 。
到现在已经维护 7 年了。
在这 7 年里,另一个库 redis 经历了多次更换。
主要维护者、计划和 ioredis 合并、最终被 Redis 官方收购的过程。
两者相对比还是挺有趣的。
@Luin 表示 ioredis 是自己独立从0开始开发的项目,创建初衷也很鲁莽,没找到满意的开源库,所以决定自己干。
历时 9 年,从个人侧的 project 到被开源公司收购,是不是我们这帮人的楷模?
编辑:万能的大雄
参考:开源中国等,一并致谢~
本文为 @ 万能的大雄 创作并授权 21CTO 发布,未经许可,请勿转载。
内容授权事宜请您联系 webmaster@21cto.com或关注 21CTO 公众号。
该文观点仅代表作者本人,21CTO 平台仅提供信息存储空间服务。