Redis快在哪里?

1、内存

2、高效的数据结构

SDS简单动态字符串(使用长度+空闲长度+实际内容)

记录了使用长度:时间复杂度o(1),性能提高

空闲长度:空间预分配,修改不需要频繁分配长度,使用长度>1M,分配1M,否则多分配自身长度的空闲长度

惰性释放:缩短长度,不急着释放,下次增加可直接使用空闲空间

二进制安全:SDS记录使用长度,C只认“\0”,二进制数据丢失

linkedlist双端列表

记录前后节点,list结构有头尾指针,节点数量

ziplist压缩列表

占用内存字节数+头到尾偏移量+节点数量+实际内容1+实际内容2+尾标志

特殊编码+内存连续分配

quicklist(linkedlist+ziplist)

节点用ziplist,节点间使用双向指针

字典(哈希表)

k-v,时间复杂度o(1)-快

skiplist跳跃表

链表+多级索引

3、合理的数据编码

4、IO多路复用模型

多线程 cpu上下文切换,不必要的损耗,redis使用Reactor单线程,内存,没有上下文切换,最佳方案

应对大量的请求,Redis 中使用 I/O 多路复用程序同时监听多个套接字,并将这些事件推送到一

个队列里,然后逐个被执行。最终将结果返回给客户端。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值