Redis 为什么这么快?

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: 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 中,后续使用。

640.png

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
6月前
|
缓存 NoSQL Redis
Redis雪崩问题
Redis雪崩问题
65 1
|
27天前
|
存储 缓存 NoSQL
介绍一下Redis
【10月更文挑战第19天】介绍一下Redis
|
6月前
|
存储 消息中间件 缓存
|
存储 NoSQL Redis
|
存储 NoSQL Java
Redis3
Redis3
53 0
|
6月前
|
存储 SQL NoSQL
[Redis]——初识Redis
[Redis]——初识Redis
|
存储 缓存 NoSQL
|
运维 NoSQL Shell
redis-2
redis-2
78 0
|
NoSQL Redis 数据库
什么是Redis
Redis,即远程字典服务,是一个开源的使用ANSI C语言编写,支持网络,可基于内存亦可持久化的日志型,Key-Value数据库。类似于map
66 0
|
存储 缓存 监控