redis快的原因
-
Redis是純記憶體資料庫,一般都是簡單的存取操作,執行緒佔用的時間很多,時間的花費主要集中在IO上,所以讀取速度快。
-
Redis使用的是非阻塞IO,IO多路複用,使用了單執行緒來輪詢描述符,將資料庫的開、關、讀、寫都轉換成了事件,減少了執行緒切換時上下文的切換和競爭。多路指的是多個 socket 連線,複用指的是複用一個執行緒。多路複用技術就是讓單個執行緒高效地處理多個連線請求。
-
Redis採用了單執行緒的模型,保證了每個操作的原子性,也減少了執行緒的上下文切換和競爭。
-
另外,資料結構也幫了不少忙,Redis全程使用hash結構,讀取速度快,還有一些特殊的資料結構,對資料儲存進行了優化,如壓縮表,對短資料進行壓縮儲存,再如,跳錶,使用有序的資料結構加快讀取的速度。
-
還有一點,Redis採用自己實現的事件分離器,效率比較高,內部採用非阻塞的執行方式,吞吐能力比較大。
轉載自:https://zhuanlan.zhihu.com/p/52600663
相關文章
- REDIS快取穿透,快取擊穿,快取雪崩原因+解決方案Redis快取穿透
- Redis 快取擊穿、穿透、雪崩的原因以及解決方案Redis快取穿透
- Redis快取穿透/快取雪崩/快取擊穿(案例:產生的原因 解決方案利/弊)Redis快取穿透
- 單執行緒架構的Redis如此之快的 4 個原因執行緒架構Redis
- Redis學習五(Redis 阻塞的原因及其排查方向).Redis
- Redis快取篇(一)Redis是如何工作的Redis快取
- Redis的快取穿透、快取雪崩、快取擊穿的區別Redis快取穿透
- Redis快取穿透Redis快取穿透
- Redis快取穿透、快取雪崩、redis併發問題分析Redis快取穿透
- 什麼是redis的快取雪崩與快取穿透Redis快取穿透
- Redis快取擊穿、快取穿透、快取雪崩Redis快取穿透
- [Redis]快取穿透/快取擊穿/快取雪崩Redis快取穿透
- 使用Redis做為MySQL的快取RedisMySql快取
- laravel: 指定redis快取項的字首LaravelRedis快取
- Redis 的快取淘汰機制(Eviction)Redis快取
- MySQL 與 Redis 快取的同步方案MySqlRedis快取
- 【Azure Redis 快取 Azure Cache For Redis】Redis連線池Redis快取
- SpringBoot整合Redis快取Spring BootRedis快取
- redis→分散式快取Redis分散式快取
- Redis 快取之三Redis快取
- redis快取介紹Redis快取
- Redis到底快在哪裡Redis
- redis為什麼快Redis
- Redis[快問快答系列]Redis
- 如何使用 Redis 快取Redis快取
- Laravel使用Redis快取LaravelRedis快取
- Redis快取篇(四)快取異常Redis快取
- Mybatis的二級快取、使用Redis做二級快取MyBatis快取Redis
- 【Azure Redis 快取 Azure Cache For Redis】使用Redis自帶redis-benchmark.exe命令測試Azure Redis的效能Redis快取
- 談談Redis快取中MySQL的資料如何與Redis同步Redis快取MySql
- SmartSql Redis 分散式快取SQLRedis分散式快取
- Spring Boot Cache Redis快取Spring BootRedis快取
- redis快取優化案例Redis快取優化
- springboot +lettuce +redis 快取使用Spring BootRedis快取
- redis 快取 singlefly 查詢Redis快取
- Redis快取穿透和雪崩Redis快取穿透
- Redis快取穿透與雪崩Redis快取穿透
- Redis詳解(十二)------ 快取穿透、快取擊穿、快取雪崩Redis快取穿透