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 浙江

相关推荐

不愿透露姓名的神秘牛友
昨天 12:20
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
今天 12:23
点赞 评论 收藏
分享
机械打工仔:我来告诉你原因,是因为sobb有在线简历,有些HR为了快会直接先看在线简历,初步感觉不合适就不会找你要详细的了
投了多少份简历才上岸
点赞 评论 收藏
分享
弦五Strings:他之所以会举报你代课是因为在这种人眼里正常上课就是正义代课就是邪恶,典型二极管思维,处理方法就是私下沟通,你就说你自己家里经济困难或者家里父母生病什么之类的,需要去打工挣钱,用尽孝的正义对冲他认为的上课的正义,他可能就妥协了。
我的实习日记
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-11 11:29
点赞 评论 收藏
分享
评论
11
70
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务