redis为什么快

本文讲解redis(redis涉及到的知识还是挺多的,比如部署方式(单机,主从,哨兵,集群),雪崩,击穿,穿透,不隆过滤器,持久化方式rdb、aop等等,这些都学过好多遍了,本文就不赘述了,主要讲讲redis为什么快)
1.首先redis是内存数据库,基于内存的这么什么好说的。
2.redis使用了单线程,因为线程切换需要浪费时间,切换上下文,redis服务器接收到用户请求后,会将请求放入一个队列中,逐个处理。
3.redis使用了io多路复用模型,同时监听多个客户端的连接。
4.redis虽然是基础c实现的,但是它自定义了数据结构。
(1)sds简单动态字符串
c语言中不存储字符串长度,以、0结尾,sds存储长度
c语言修改字符串会重新分配内存,但是redis会频繁修改字符串,所以提供了内存预分配(最大1M),惰性释放空间(修改短的不会立即释放空间)。
(2)双端队列
既可以当作队列又可以当作栈来用,说白了就是记录了整个队列的头节点、尾节点,然后每个节点不仅记录了节点的值还有pre和next两个指针。
(3)压缩列表
如果list中节点很少就可以用,压缩列表就是定好每个节点的长度(偏移量),然后就可以根据开始位置和长度找到每个节点,这种数据结构只适用于节点少,并且节点上保存的数据少的情况。
(4)字典,说白了就是索引
(5)跳跃表,说白了就是btree b+tree

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值