Redis 为什么这么快?

Redis 为什么这么快?

Redis 是 NoSQL 数据库,key-Value 数据库,键值数据库会使用 hash 表存储值和数据。 Redis 全称是 Remote Dictionary Server ,是用字典存储数据,也就是 key-value 类型的数据。

Redis 查询效率很高,为什么这么快?

  1. Redis 采用的是 ANSI C 语言编写,采用 C 语言编写的好处是底层代码执行效率高。依赖性低,使用 C 语言开发的库没有太多运行时(Runtime)依赖,并且系统兼容性好,稳定性高。
  2. Redis 采用的 Key-Value 方式进行存储,数据的操作复杂度为 O(1)
  3. 采用单线程模型,单线程避免了线程上下文切换和不必要的线程资源竞争。
  4. 采用了多路 I/O 复用技术,这里的多路是多个 Socket 网络连接,复用是指复用一个线程,采用多路技术的好处是同一个线程中可以处理多个 I/O 请求,减少网络 IO 消耗,提升了使用效率。

为什么采用连接池机制?

直接连接的问题是每次都要创建一个连接,这开销非常大,使用连接池机制,事先创建好多个连接,将其放到连接池中,当需要Redis 操作的时候,直接从连接池中获取,完成后不是释放掉连接,而是返回到连接池。

连接池原理

连接池实例一般保存两个list,保存的是 _avilable_connections 和 _in_user_connections, 分别代表连接池中可以使用集合和正在使用的连接池集合。

当想要创建连接时,从 _availavle_connections 中获取一个连接并使用,并将其_in_use_connections 中,如果没有可用的连接,才会创建一个新连接,再将其放到
_in_use_connections 中,如果连接使用完毕从 _in_use_connection中删除,然后添加到 _avilavle_connections 中,后续使用。
在这里插入图片描述

欢迎关注公众号:程序员开发者社区

在这里插入图片描述

wangxiaoming CSDN认证博客专家 架构 Spring Boot Redis
博客是很好的总结和记录工具,如果有问题,来不及回复,关注微信公众号:程序员开发者社区,获取我的联系方式,向我提问,也可以给我发送邮件,联系 1275801617@qq.com
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页
实付 19.89元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值