91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

2021最新版的Redis面試題有哪些

發布時間:2021-10-13 11:50:52 來源:億速云 閱讀:144 作者:iii 欄目:編程語言

本篇內容主要講解“2021最新版的Redis面試題有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“2021最新版的Redis面試題有哪些”吧!

1、什么是 Redis?

Redis 是一個使用 C 語言寫成的,開源的高性能key-value非關系緩存數據庫。它支持存儲的value 類型相對更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set --有序集合)和 hash(哈希類型)。Redis的數據都基于緩存的,所以很快,每秒可以處理超過 10萬次讀寫操作,是已知性能最快的Key-Value DB。Redis也可以實現數據寫入磁盤中,保證了數據的安全不丟 失,而且Redis的操作是原子性的。

2、Redis 的數據類型?

Redis主要有5種數據類型,包括String,List,Set,Zset,Hash,滿足大部分的使用要求

2021最新版的Redis面試題有哪些

3、使用 Redis 有哪些好處?

(1) 速度快,因為數據存在內存中,類似于HashMap,HashMap的優勢就是查找和操作的時間復

雜度都很低

(2)支持豐富數據類型,支持string,list,set,sorted set,hash

(3) 支持事務,操作都是原子性,所謂的原子性就是對數據的更改要么全部執行,要么全部不執行

(4) 豐富的特性:可用于緩存,消息,按key設置過期時間,過期后將會自動刪除

4、Redis 相比 Memcached 有哪些優勢?

  • 1、Memcached 所有的值均是簡單的字符串, redis 作為其替代者, 支持更為豐富的數據類

  • 2、Redis 的速度比 Memcached 快很3、Redis 可以持久化其數據

5、Memcache 與 Redis 的區別都有哪些?

1、存儲方式 Memecache 把數據全部存在內存之中, 斷電后會掛掉, 數據不能超過內存大小。 Redis有部份存在硬盤上, 這樣能保證數據的持久性

2、數據支持類型 Memcache 對數據類型支持相對簡單。 Redis 有復雜的數據類型。

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

6、Redis 是單進程單線程的?

  • 答: Redis 是單進程單線程的, redis 利用隊列技術將并發訪問變為串行訪問, 消除了傳統數據庫串行控制的開銷。

7、一個字符串類型的值能存儲最大容量是多少?

  • 答: 512M

8、Redis 的持久化機制是什么?各自的優缺點?

Redis 提供兩種持久化機制 RDB(默認) 和 AOF 機制:

RDB:是Redis DataBase縮寫快照

  • RDB是Redis默認的持久化方式。按照一定的時間將內存的數據以快照的形式保存到硬盤中,對應產生的數據文件為dump.rdb。通過配置文件中的save參數來定義快照的周期。

2021最新版的Redis面試題有哪些

優點:

  1. 只有一個文件 dump.rdb,方便持久化。

  2. 容災性好,一個文件可以保存到安全的磁盤。

  3. 性能最大化,fork 子進程來完成寫操作,讓主進程繼續處理命令,所以是 IO 最大化。使用單 獨子進程來進行持久化,主進程不會進行任何 IO 操作,保證了 redis 的高性能

  4. 相對于數據集大時,比 AOF 的啟動效率更高。

缺點:

  1. 數據安全性低。RDB 是間隔一段時間進行持久化,如果持久化之間 redis 發生故障,會發生數 據丟失。所以這種方式更適合數據要求不嚴謹的時候)

  2. AOF(Append-only fifile)持久化方式: 是指所有的命令行記錄以 redis 命令請 求協議的格式 完全持久化存儲)保存為 aof 文件。

AOF:持久化:

  • AOF持久化(即Append Only File持久化),則是將Redis執行的每次寫命令記錄到單獨的日志文件

  • 中,當重啟Redis會重新將持久化的日志中文件恢復數據。當兩種方式同時開啟時,數據恢復Redis會優先選擇AOF恢復

2021最新版的Redis面試題有哪些

優點:

  1. 數據安全,aof 持久化可以配置 appendfsync 屬性,有 always,每進行一次 命令操作就記錄 到 aof 文件中一次。

  2. 通過 append 模式寫文件,即使中途服務器宕機,可以通過 redis-check-aof 工具解決數據一 致性問題。

  3. AOF 機制的 rewrite 模式。AOF 文件沒被 rewrite 之前(文件過大時會對命令 進行合并重寫),可以刪除其中的某些命令(比如誤操作的 flflushall))

缺點:

  1. AOF 文件比 RDB 文件大,且恢復速度慢。

  2. 數據集大的時候,比 rdb 啟動效率低。

倆種持久化的優缺點是什么?

  • AOF文件比RDB更新頻率高,優先使用AOF還原數據。

  • AOF比RDB更安全也更大

  • RDB性能比AOF好

  • 如果兩個都配了優先加載AOF

9、Redis 常見性能問題和解決方案:

2021最新版的Redis面試題有哪些

10、Redis 過期鍵的刪除策略?

2021最新版的Redis面試題有哪些

11、Redis 的回收策略(淘汰策略)?

2021最新版的Redis面試題有哪些

12、為什么 Redis 需要把所有數據放到內存中?

  • 答:Redis 為了達到最快的讀寫速度將數據都讀到內存中,并通過異步的方式將數據寫入磁盤。所以redis 具有快速和數據持久化的特征。如果數據放在內存中, 磁盤 I/O 速度為嚴重影響 redis 的性能。在內存越來越便宜的今天, redis 將會越來越受歡迎。如果設置了最大使用的內存, 則數據已有記錄數達到內存限值后不能繼續插入新值。

13、Redis 的同步機制了解么?

  • 答:Redis 可以使用主從同步,從從同步。第一次同步時,主節點做一次 bgsave, 并同時將后續修改操作記錄到內存 buffffer, 待完成后將 rdb 文件全量同步到復制節點, 復制節點接受完成后將 rdb 鏡像加載到內存。加載完成后, 再通知主節點將期間修改的操作記錄同步到復制節點進行重放就完成了同步過程。

14、Pipeline 有什么好處,為什么要用 pipeline?

  • 答:可以將多次 IO 往返的時間縮減為一次,前提是 pipeline 執行的指令之間沒有因果相關性。使用redis-benchmark 進行壓測的時候可以發現影響 redis 的 QPS 峰值的一個重要因素是 pipeline 批次指令的數目。

15、是否使用過 Redis 集群,集群的原理是什么?

  1. 、Redis Sentinal 著眼于高可用, 在 master 宕機時會自動將 slave 提升為master, 繼續提供服務。

  2. 、Redis Cluster 著眼于擴展性, 在單個 redis 內存不足時, 使用 Cluster 進行分片存儲。

16、Redis 集群方案什么情況下會導致整個集群不可用?

  • 答: 有 A, B, C 三個節點的集群,在沒有復制模型的情況下,如果節點 B 失敗了, 那么整個集群就會以為缺少 5501-11000 這個范圍的槽而不可用。

17、Redis 支持的 Java 客戶端都有哪些?官方推薦用哪個?

  • 答: Redisson、Jedis、lettuce 等等, 官方推薦使用 Redisson。

18、Jedis 與 Redisson 對比有什么優缺點?

  • 答: Jedis 是 Redis 的 Java 實現的客戶端, 其 API 提供了比較全面的 Redis 命令的支持;Redisson 實現了分布式和可擴展的 Java 數據結構,和 Jedis 相比,功能較為簡單, 不支持字符串操作, 不支持排序、事務、管道、分區等 Redis 特性。Redisson 的宗旨是促進使用者對 Redis 的關注分離,從而讓使用者能夠將精力更集中地放在處理業務邏輯上。

19、Redis 如何設置密碼及驗證密碼?

  • 設置密碼: confifig set requirepass 123456 授權密碼: auth 123456

20、說說 Redis 哈希槽的概念?

  • 答: Redis 集群沒有使用一致性 hash,而是引入了哈希槽的概念, Redis 集群有16384 個哈希槽,每個key 通過 CRC16 校驗后對 16384 取模來決定放置哪個槽, 集群的每個節點負責一部分 hash 槽。

21、Redis 集群的主從復制模型是怎樣的?

  • 答: 為了使在部分節點失敗或者大部分節點無法通信的情況下集群仍然可用, 所以集群使用了主從復制模型,每個節點都會有 N-1 個復制品.

22、Redis 集群會有寫操作丟失嗎?為什么?

  • 答:Redis 并不能保證數據的強一致性,這意味這在實際中集群在特定的條件下可能會丟失寫操作。

23、Redis 集群之間是如何復制的?

  • 答: 異步復制

24、Redis 集群最大節點個數是多少?

  • 答: 16384 個。

25、Redis 集群如何選擇數據庫?

  • 答: Redis 集群目前無法做數據庫選擇, 默認在 0 數據庫。

26、怎么測試 Redis 的連通性?

  • 答: 使用 ping 命令。

27、怎么理解 Redis 事務?

答:

1) 事務是一個單獨的隔離操作: 事務中的所有命令都會序列化、按順序地執行。事務在執行的過程中, 不會被其他客戶端發送來的命令請求所打斷。

2) 事務是一個原子操作: 事務中的命令要么全部被執行, 要么全部都不執行。

28、Redis 事務相關的命令有哪幾個?

  • 答: MULTI、EXEC、DISCARD、WATCH

29、Redis key 的過期時間和永久有效分別怎么設置?

  • 答: EXPIRE 和 PERSIST 命令。

30、Redis 如何做內存優化?

  • 答: 盡可能使用散列表( hashes), 散列表( 是說散列表里面存儲的數少) 使用的內存非常小, 所以你應該盡可能的將你的數據模型抽象到一個散列表里面。比如你的 web 系統中有一個用戶對象, 不要為這個用戶的名稱, 姓氏, 郵箱, 密碼設置單獨的 key,而是應該把這個用戶的所有信息存儲到一張散列表里面.

31、Redis 回收進程如何工作的?

答: 一個客戶端運行了新的命令, 添加了新的數據。Redi 檢查內存使用情況, 如果大于 maxmemory的限制, 則根據設定好的策略進行回收。一個新的命令被執行, 等等。所以我們不斷地穿越內存限制的邊界, 通過不斷達到邊界然后不斷地回收回到邊界以下。如果一個命令的結果導致大量內存被使用(例如很大的集合的交集保存到一個新的鍵), 不用多久內存限制就會被這個內存使用量超越。

32、都有哪些辦法可以降低 Redis 的內存使用情況呢?

  • 答:如果你使用的是 32 位的 Redis 實例,可以好好利用 Hash,list,sorted set,set 等集合類型數據, 因為通常情況下很多小的 Key-Value 可以用更緊湊的方式存放到一起。

33、Redis 的內存用完了會發生什么?

  • 答:如果達到設置的上限,Redis 的寫命令會返回錯誤信息( 但是讀命令還可以正常返回。) 或者你可以將 Redis 當緩存來使用配置淘汰機制, 當 Redis 達到內存上限時會沖刷掉舊的內容。

34、一個 Redis 實例最多能存放多少的 keys?List、Set、Sorted Set 他們最多能存放多少元素?

  • 答:理論上 Redis 可以處理多達 232 的 keys,并且在實際中進行了測試,每個實例至少存放了 2 億 5千萬的 keys。我們正在測試一些較大的值。任何 list、set、和 sorted set 都可以放 232 個元素。換句話說, Redis 的存儲極限是系統中的可用內存值。

35、MySQL 里有 2000w 數據,redis 中只存 20w 的數據,如何保證 redis 中的數據都是熱點數據?

  • 答: Redis 內存數據集大小上升到一定大小的時候, 就會施行數據淘汰策略。相關知識: Redis 提供 6種數據淘汰策略:

  • volatile-lru:從已設置過期時間的數據集( server.dbi.expires)中挑選最近最少使用的數據淘汰

  • volatile-ttl: 從已設置過期時間的數據集( server.dbi.expires) 中挑選將要過期的數據淘汰

  • volatile-random: 從已設置過期時間的數據集( server.dbi.expires) 中任意選擇數據淘汰

  • allkeys-lru: 從數據集( server.dbi.dict) 中挑選最近最少使用的數據淘汰

  • allkeys-random: 從數據集( server.dbi.dict) 中任意選擇數據淘汰

  • no-enviction( 驅逐) : 禁止驅逐數據

36、Redis 最適合的場景?

1、會話緩存( Session Cache)

最常用的一種使用 Redis 的情景是會話緩存( session cache)。用 Redis 緩存會話比其他存儲( 如Memcached)的優勢在于:Redis 提供持久化。當維護一個不是嚴格要求一致性的緩存時, 如果用戶的購物車信息全部丟失, 大部分人都會不高興的, 現在, 他們還會這樣嗎? 幸運的是, 隨著 Redis這些年的改進, 很容易找到怎么恰當的使用 Redis 來緩存會話的文檔。甚至廣為人知的商業平臺Magento 也提供 Redis 的插件。

2、全頁緩存( FPC)

除基本的會話 token 之外, Redis 還提供很簡便的 FPC 平臺。回到一致性問題, 即使重啟了 Redis 實例, 因為有磁盤的持久化, 用戶也不會看到頁面加載速度的下降,這是一個極大改進,類似 PHP 本地FPC。 再次以 Magento 為例,Magento 提供一個插件來使用 Redis 作為全頁緩存后端。 此外, 對WordPress 的用戶來說, Pantheon 有一個非常好的插件 wp-redis, 這個插件能幫助你以最快速度加載你曾瀏覽過的頁面。

3、隊列

Reids 在內存存儲引擎領域的一大優點是提供 list 和 set 操作, 這使得 Redis 能作為一個很好的消息隊列平臺來使用。Redis 作為隊列使用的操作,就類似于本地程序語言( 如 Python)對 list 的 push/pop操作。 如果你快速的在 Google 中搜索“ Redis queues”, 你馬上就能找到大量的開源項目, 這些項目的目的就是利用 Redis 創建非常好的后端工具, 以滿足各種隊列需求。例如, Celery 有一個后臺就是使用 Redis 作為 broker, 你可以從這里去查看。

4, 排行榜/計數器

Redis 在內存中對數字進行遞增或遞減的操作實現的非常好。集合( Set) 和有序集合( Sorted Set)也使得我們在執行這些操作的時候變的非常簡單,Redis 只是正好提供了這兩種數據結構。所以, 我們要從排序集合中獲取到排名最靠前的 10 個用戶– 我們稱之為“ user_scores”, 我們只需要像下面一樣執行即可: 當然,這是假定你是根據你用戶的分數做遞增的排序。如果你想返回用戶及用戶的分數,你需要這樣執行: ZRANGEuser_scores 0 10 WITHSCORES Agora Games 就是一個很好的例子, 用Ruby 實現的, 它的排行榜就是使用 Redis 來存儲數據的, 你可以在這里看到。

5、發布/訂閱

最后( 但肯定不是最不重要的)是 Redis 的發布/訂閱功能。發布/訂閱的使用場景確實非常多。我已看見人們在社交網絡連接中使用, 還可作為基于發布/訂閱的腳本觸發器, 甚至用 Redis 的發布/訂閱功能來建立聊天系統!

37、假如 Redis 里面有 1 億個 key,其中有 10w 個 key 是以某個固定的已知的前綴開頭的,如果將它們全部找出來?

2021最新版的Redis面試題有哪些

38、如果有大量的 key 需要設置同一時間過期,一般需要注意什么?

  • 答:如果大量的 key 過期時間設置的過于集中,到過期的那個時間點,redis 可能會出現短暫的卡頓現象。一般需要在時間上加一個隨機值, 使得過期時間分散一些。

39、使用過 Redis 做異步隊列么,你是怎么用的?

2021最新版的Redis面試題有哪些

40、使用過 Redis 分布式鎖么,它是什么回事?

2021最新版的Redis面試題有哪些

41、如何實現集群中的 session 共享存儲?

2021最新版的Redis面試題有哪些

42、memcached 與redis 的區別?

2021最新版的Redis面試題有哪些

43、查看 Redis 使用情況及狀態信息用什么命令?

  • info

44、Redis 的內存用完了會發生什么?

  • 如果達到設置的上限,Redis 的寫命令會返回錯誤信息(但是讀命令還可以正常返回。)或 者你可以將 Redis 當緩存來使用配置淘汰機制,當 Redis 達到內存上限時會沖刷掉舊的內容。

45、Redis 是單線程的,如何提高多核 CPU 的利用率?

  • 可以在同一個服務器部署多個 Redis 的實例,并把他們當作不同的服務器來使用,在某些時候,無論如何一個服務器是不夠的, 所以,如果你想使用多個 CPU,你可以考慮一下分片(shard)

46、一個 Redis 實例最多能存放多少的 keys?List、Set、Sorted Set 他們最多能存放多少元素?

2021最新版的Redis面試題有哪些

47、Redis 常見性能問題和解決方案?

(1) Master 最好不要做任何持久化工作,如 RDB 內存快照和 AOF 日志文件

(2) 如果數據比較重要,某個 Slave 開啟 AOF 備份數據,策略設置為每秒同步一次

(3) 為了主從復制的速度和連接的穩定性,Master 和 Slave 最好在同一個局域網內

(4) 盡量避免在壓力很大的主庫上增加從庫

(5) 主從復制不要用圖狀結構,用單向鏈表結構更為穩定,即:Master <- Slave1 <- Slave2 <- Slave3...

這樣的結構方便解決單點故障問題,實現 Slave 對 Master 的替換。如果 Master 掛了,可以立刻啟用 Slave1 做 Master,其他不變。

48、Redis 提供了哪幾種持久化方式?

2021最新版的Redis面試題有哪些

49、如何選擇合適的持久化方式?

2021最新版的Redis面試題有哪些

50、修改配置不重啟 Redis 會實時生效嗎?

2021最新版的Redis面試題有哪些

到此,相信大家對“2021最新版的Redis面試題有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

铁岭县| 荆州市| 江北区| 句容市| 南投市| 云安县| 汝南县| 成安县| 察隅县| 轮台县| 凤城市| 绵竹市| 乌鲁木齐县| 文昌市| 临夏市| 黑山县| 梁山县| 长武县| 区。| 阿勒泰市| 呼伦贝尔市| 霍山县| 饶河县| 九江市| 宁波市| 海林市| 镇安县| 罗甸县| 青川县| 绍兴市| 天津市| 彩票| 随州市| 枣庄市| 康平县| 焉耆| 武汉市| 五原县| 修文县| 鞍山市| 衡山县|