日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Redis凭啥这么快?只能做缓存?架构师道出了真相(颠覆你的认知)

發布時間:2023/12/4 数据库 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Redis凭啥这么快?只能做缓存?架构师道出了真相(颠覆你的认知) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Redis到底有多快

Redis采用的是基于內存的采用的是單進程單線程模型的?KV 數據庫,由C語言編寫,官方提供的數據是可以達到100000+的QPS(每秒內查詢次數)。這個數據不比采用單進程多線程的同樣基于內存的 KV 數據庫 Memcached 差!有興趣的可以參考官方的基準程序測試《How fast is Redis?》(redis.io/topics/benchma)

橫軸是連接數,縱軸是QPS。此時,這張圖反映了一個數量級,希望大家在面試的時候可以正確的描述出來,不要問你的時候,你回答的數量級相差甚遠!

Redis為什么這么快

1、完全基于內存,絕大部分請求是純粹的內存操作,非常快速。數據存在內存中,類似于HashMap,HashMap的優勢就是查找和操作的時間復雜度都是O(1);

2、數據結構簡單,對數據操作也簡單,Redis中的數據結構是專門進行設計的;

3、采用單線程,避免了不必要的上下文切換和競爭條件,也不存在多進程或者多線程導致的切換而消耗 CPU,不用去考慮各種鎖的問題,不存在加鎖釋放鎖操作,沒有因為可能出現死鎖而導致的性能消耗;

4、使用多路I/O復用模型,非阻塞IO;

5、使用底層模型不同,它們之間底層實現方式以及與客戶端之間通信的應用協議不一樣,Redis直接自己構建了VM 機制 ,因為一般的系統調用系統函數的話,會浪費一定的時間去移動和請求;

以上幾點都比較好理解,下邊我們針對多路 I/O 復用模型進行簡單的探討:

(1)多路 I/O 復用模型

多路I/O復用模型是利用 select、poll、epoll 可以同時監察多個流的 I/O 事件的能力,在空閑的時候,會把當前線程阻塞掉,當有一個或多個流有 I/O 事件時,就從阻塞態中喚醒,于是程序就會輪詢一遍所有的流(epoll 是只輪詢那些真正發出了事件的流),并且只依次順序的處理就緒的流,這種做法就避免了大量的無用操作。

這里“多路”指的是多個網絡連接,“復用”指的是復用同一個線程。采用多路 I/O 復用技術可以讓單個線程高效的處理多個連接請求(盡量減少網絡 IO 的時間消耗),且 Redis 在內存中操作數據的速度非常快,也就是說內存內的操作不會成為影響Redis性能的瓶頸,主要由以上幾點造就了 Redis 具有很高的吞吐量。

Redis面試題

1、Redis 分布式集群的幾種解決方案,哨兵等方案結合生產環境經驗的區別、優劣是什么?

2、Redis 和數據庫同步、緩沖穿透、雪崩問題、hyperloglog slowqery 實現原理?

3、100W并發4G數據,10W并發400G數據,如何設計Redis存儲方式?

4、假如內存 8G 的話,Redis 既然是運行在內存中,那 Redis 最大能存多大數據?

5、Redis消息隊列消息實現原理是什么??

6、Redis集群模式下如何保證數據一致性?

7、Redis訂閱(sub)/發布(pub)實現原理是什么?

8、有沒有在生產環境下用 Redis 做持久化存儲的例子?一般怎么配置 AOF 和 RDB?在高并發并且盡量少數據丟失的情況下有哪些優化手段?

9、Redis的持久化開啟了RDB和AOF下重啟服務是如何加載的?

10、Redis-(master/slaver)模式缺點,如何解決?

怎么樣?都能回答上來嗎?夠酸爽嗎?不要小瞧了Redis,它是你通向分布式、微服務的必經之門,也是您面試高程、架構師的必問題,如果您對Redis的理解,還僅僅停留在簡單的部署和數據讀寫上,那么,您該好好惡補下Redis了。

2

Redis四天突擊營

6月24日~6月27日,架構師Tony老師將帶領大家開啟Redis集訓,Tony老師先后就職于歡聚時代、藝龍等一線互聯網公司,擁有7年大型互聯網架構經驗。

四天的集訓,Tony老師會用通俗化的語言、接地氣實戰化的內容為大家深挖Redis的前世今生,讓您對Redis有更全面、更深入的理解。課程原價499元,本號粉絲一律0元學

長按掃碼進班級群

第一天:Redis消息隊列? ??
  • 什么是高并發系統消息隊列

  • redis中消息隊列消息發送rpush,lpush

  • redis中消息隊列消息獲取rpop,lpop,blpop,brpop

  • redis中消息隊列rpush,lpush,rpop,lpop如何實現

第二天:Redis發布訂閱
  • Sub/Pub是什么

  • Sub/Pub場景應用

  • Sub/Pub封裝

  • Sub/Pub實現原理

  • Sub/Pub缺陷

第三天:Redis分布式鎖? ??
  • 在分布系統中,鎖是什么?

  • redis中加鎖LockTake,LockTakeAsync?

  • redis中解鎖LockRelease,LockReleaseAsync

  • redis中如何防止死鎖

  • 電商系統中,redis分布式鎖的應用

第四天:Redis分布式集群? ??
  • 什么是高性能高并發集群?

  • redis-(master/slaver)模式

  • redus-(sentinel/master/slaver)哨兵模式

  • redis-cluster模式

3

進群還送福利

掃碼獲取以上福利

僅限前200名

總結

以上是生活随笔為你收集整理的Redis凭啥这么快?只能做缓存?架构师道出了真相(颠覆你的认知)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。