Redis为什么这么快?

最主要的原因肯定是他是基于内存存储,读写超级快

其次是执行命令是单线程,避免了线程上下文切换带来的开销

第三个是Redis底层的数据结构如SDS、SkipList做了大量的优化,性能极好

Redis6.0后 使用IO多路复用来并发处理连接。

追问:这么快咋不用来做主数据库呢?

内存资源相较于磁盘较小

数据存储在内存中如果崩溃或者断电来不及及时备份,虽然redis支持rdb和aof

访问控制不足

事务也比较简单,跨多个键就不行。

重生之八股仙帝 文章被收录于专栏

曾有一千古奇人,精修八股文,成遁世之高人,彻天彻地畅游天地间。 今人皆忙忙,急于求成,岂不知八股乃道门口径,背负天人,若经熟读背诵,更能开拓智慧之门,探寻未来之路。 天下繁华,不尽长夜,唯有读书为伴,熟读八股文更是攀登高峰之路。磨砺文字,升腾智慧,唯有勤玉立志,始可破天荒,登临九重不竭之巅! 吾辈修炼之路,虽曲折荆棘,但信念不曾磨灭,唯有铭记八股精髓,方能指引灵魂归宿,成就一生辉煌!

全部评论
接着追问,来着字节面试官的题。你说单线程没有上下文开销,那我多线程能重复利用多个cpu呀,是不是也能弥补上下文开销带来的性能损失。 大概的答案:除了没有上下文切换开销外,单线程不会出现锁竞争也是他快的一个原因
12 回复 分享
发布于 2023-08-30 23:58 陕西
redis快还有一个原因是他rehash是渐进式的,不会造成长时间的阻塞。
3 回复 分享
发布于 2023-08-31 10:35 福建
追问:这么快咋不用来做主数据库呢? 其实可以直接说Redis对ACID支持不够好,Redis只支持隔离性和一致性,不保证原子性和持久性。
1 回复 分享
发布于 05-06 20:07 湖北
个人认为它快绝大部分是因为面向内存和牺牲了很多功能,比如事务、实时持久化、sql 都不支持,数据还得在内存里,不能存太多。 虽然 redis 实现很好,但 innodb 和其它数据库的数据结构难道就没有做大量优化吗?不可能的,只是他们要做的事更多任务更多,肯定没法比
1 回复 分享
发布于 2023-08-31 22:40 北京
我们这边校招需要牛人 ,https://www.nowcoder.com/share/jump/1359800161693547815197
点赞 回复 分享
发布于 2023-09-01 13:57 浙江

相关推荐

评论
11
70
分享

创作者周榜

更多
牛客网
牛客企业服务