内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

Redis常見面試真題和答案-創(chuàng)新互聯(lián)

這篇文章給大家分享的是Redis常見面試真題和答案。小編覺得挺實(shí)用的,為此分享給大家做個(gè)參考。一起跟隨小編過來看看吧。

成都創(chuàng)新互聯(lián)公司主營(yíng)古冶網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,重慶APP開發(fā),古冶h5微信平臺(tái)小程序開發(fā)搭建,古冶網(wǎng)站營(yíng)銷推廣歡迎古冶等地區(qū)企業(yè)咨詢

1、什么是 Redis?

Redis 本質(zhì)上是一個(gè) Key-Value 類型的內(nèi)存數(shù)據(jù)庫(kù),很像 memcached,整個(gè)數(shù)據(jù)庫(kù)統(tǒng)統(tǒng)加載在內(nèi)存當(dāng)中進(jìn)行操作,定期通過異步操作把數(shù)據(jù)庫(kù)數(shù)據(jù) flush 到硬盤上進(jìn)行保存。因?yàn)槭羌儍?nèi)存操作,Redis 的性能非常出色,每秒可以處理超過 10 萬次讀寫操作,是已知性能最快的 Key-Value DB。
Redis 的出色之處不僅僅是性能,Redis 大的魅力是支持保存多種數(shù)據(jù)結(jié)構(gòu),此外單個(gè)value 的大限制是 1GB,不像 memcached 只能保存 1MB 的數(shù)據(jù),因此 Redis 可以用來實(shí)現(xiàn)很多有用的功能,比方說用他的 List 來做 FIFO 雙向鏈表,實(shí)現(xiàn)一個(gè)輕量級(jí)的高性 能消息隊(duì)列服務(wù),用他的 Set 可以做高性能的 tag 系統(tǒng)等等。另外 Redis 也可以對(duì)存入的Key-Value 設(shè)置 expire 時(shí)間,因此也可以被當(dāng)作一 個(gè)功能加強(qiáng)版的 memcached 來用。Redis 的主要缺點(diǎn)是數(shù)據(jù)庫(kù)容量受到物理內(nèi)存的限制,不能用作海量數(shù)據(jù)的高性能讀寫,因此 Redis 適合的場(chǎng)景主要局限在較小數(shù)據(jù)量的高性能操作和運(yùn)算上。

2、Redis 相比 memcached 有哪些優(yōu)勢(shì)?

  1. memcached 所有的值均是簡(jiǎn)單的字符串,Redis 作為其替代者,支持更為豐富的數(shù)據(jù)類
  2. Redis 的速度比 memcached 快很多
  3. Redis 可以持久化其數(shù)據(jù)

3、Redis 支持哪幾種數(shù)據(jù)類型?

String、List、Set、Sorted Set、hashes

4、Redis 主要消耗什么物理資源?

內(nèi)存。

5、Redis 的全稱是什么?

Remote Dictionary Server。

6、Redis 有哪幾種數(shù)據(jù)淘汰策略?

noeviction:返回錯(cuò)誤當(dāng)內(nèi)存限制達(dá)到并且客戶端嘗試執(zhí)行會(huì)讓更多內(nèi)存被使用的命令(大部分的寫入指令,但 DEL 和幾個(gè)例外)
allkeys-lru: 嘗試回收最少使用的鍵(LRU),使得新添加的數(shù)據(jù)有空間存放。
volatile-lru: 嘗試回收最少使用的鍵(LRU),但僅限于在過期集合的鍵,使得新添加的數(shù)據(jù)有空間存放。
allkeys-random: 回收隨機(jī)的鍵使得新添加的數(shù)據(jù)有空間存放。
volatile-random: 回收隨機(jī)的鍵使得新添加的數(shù)據(jù)有空間存放,但僅限于在過期集合的鍵。
volatile-ttl: 回收在過期集合的鍵,并且優(yōu)先回收存活時(shí)間(TTL)較短的鍵,使得新添加的數(shù)據(jù)有空間存放。

7、Redis 官方為什么不提供 Windows 版本?

因?yàn)槟壳?Linux 版本已經(jīng)相當(dāng)穩(wěn)定,而且用戶量很大,無需開發(fā) windows 版本,反而會(huì)帶來兼容性等問題。

8、一個(gè)字符串類型的值能存儲(chǔ)大容量是多少?

512M

9、為什么 Redis 需要把所有數(shù)據(jù)放到內(nèi)存中?

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

10、Redis 集群方案應(yīng)該怎么做?都有哪些方案?

  1. twemproxy,大概概念是,它類似于一個(gè)代理方式,使用方法和普通 Redis 無任何區(qū)別,設(shè)置好它下屬的多個(gè) Redis 實(shí)例后,使用時(shí)在本需要連接 Redis 的地方改為連接twemproxy,它會(huì)以一個(gè)代理的身份接收請(qǐng)求并使用一致性 hash 算法,將請(qǐng)求轉(zhuǎn)接到具體 Redis,將結(jié)果再返回 twemproxy。使用方式簡(jiǎn)便(相對(duì) Redis 只需修改連接端口),對(duì)舊項(xiàng)目擴(kuò)展的選。 問題:twemproxy 自身單端口實(shí)例的壓力,使用一致性 hash 后,對(duì)Redis 節(jié)點(diǎn)數(shù)量改變時(shí)候的計(jì)算值的改變,數(shù)據(jù)無法自動(dòng)移動(dòng)到新的節(jié)點(diǎn)。
  2. codis,目前用的最多的集群方案,基本和 twemproxy 一致的效果,但它支持在 節(jié)點(diǎn)數(shù)量改變情況下,舊節(jié)點(diǎn)數(shù)據(jù)可恢復(fù)到新 hash 節(jié)點(diǎn)。
  3. Redis cluster3.0 自帶的集群,特點(diǎn)在于他的分布式算法不是一致性 hash,而是 hash槽的概念,以及自身支持節(jié)點(diǎn)設(shè)置從節(jié)點(diǎn)。具體看官方文檔介紹。
  4. 在業(yè)務(wù)代碼層實(shí)現(xiàn),起幾個(gè)毫無關(guān)聯(lián)的 Redis 實(shí)例,在代碼層,對(duì) key 進(jìn)行 hash 計(jì)算,然后去對(duì)應(yīng)的 Redis 實(shí)例操作數(shù)據(jù)。 這種方式對(duì) hash 層代碼要求比較高,考慮部分包括,節(jié)點(diǎn)失效后的替代算法方案,數(shù)據(jù)震蕩后的自動(dòng)腳本恢復(fù),實(shí)例的監(jiān)控,等等。

11、Redis 集群方案什么情況下會(huì)導(dǎo)致整個(gè)集群不可用?

有 A,B,C 三個(gè)節(jié)點(diǎn)的集群,在沒有復(fù)制模型的情況下,如果節(jié)點(diǎn) B 失敗了,那么整個(gè)集群就會(huì)以為缺少 5501-11000 這個(gè)范圍的槽而不可用。

12、MySQL 里有 2000w 數(shù)據(jù),Redis 中只存 20w 的數(shù)據(jù),如何保證 Redis 中的數(shù)據(jù)都是熱點(diǎn)數(shù)據(jù)?

Redis 內(nèi)存數(shù)據(jù)集大小上升到一定大小的時(shí)候,就會(huì)施行數(shù)據(jù)淘汰策略。

13、Redis 有哪些適合的場(chǎng)景?

  • (1)、會(huì)話緩存(Session Cache)
    最常用的一種使用 Redis 的情景是會(huì)話緩存(session cache)。用 Redis 緩存會(huì)話比其他存儲(chǔ)(如 Memcached)的優(yōu)勢(shì)在于:Redis 提供持久化。當(dāng)維護(hù)一個(gè)不是嚴(yán)格要求一致性的緩存時(shí),如果用戶的購(gòu)物車信息全部丟失,大部分人都會(huì)不高興的,現(xiàn)在,他們還會(huì)這樣嗎?
    幸運(yùn)的是,隨著 Redis 這些年的改進(jìn),很容易找到怎么恰當(dāng)?shù)氖褂?Redis 來緩存會(huì)話的文檔。甚至廣為人知的商業(yè)平臺(tái) Magento 也提供 Redis 的插件。
  • (2)、全頁緩存(FPC)
    除基本的會(huì)話 token 之外,Redis 還提供很簡(jiǎn)便的 FPC 平臺(tái)?;氐揭恢滦詥栴},即使重啟了 Redis 實(shí)例,因?yàn)橛写疟P的持久化,用戶也不會(huì)看到頁面加載速度的下降,這是一個(gè)極大改進(jìn),類似 PHP 本地 FPC。
    再次以 Magento 為例,Magento 提供一個(gè)插件來使用 Redis 作為全頁緩存后端。
    此外,對(duì) WordPress 的用戶來說,Pantheon 有一個(gè)非常好的插件 wp-Redis,這個(gè)插件能幫助你以最快速度加載你曾瀏覽過的頁面。
  • (3)、隊(duì)列
    Reids 在內(nèi)存存儲(chǔ)引擎領(lǐng)域的一大優(yōu)點(diǎn)是提供 list 和 set 操作,這使得 Redis 能作為一個(gè)很好的消息隊(duì)列平臺(tái)來使用。Redis 作為隊(duì)列使用的操作,就類似于本地程序語言(如Python)對(duì) list 的 push/pop 操作。
    如果你快速的在 Google 中搜索“Redis queues”,你馬上就能找到大量的開源項(xiàng)目,這些項(xiàng)目的目的就是利用 Redis 創(chuàng)建非常好的后端工具,以滿足各種隊(duì)列需求。例如,Celery有一個(gè)后臺(tái)就是使用 Redis 作為 broker,你可以從這里去查看。
  • (4)、排行榜/計(jì)數(shù)器
    Redis在內(nèi)存中對(duì)數(shù)字進(jìn)行遞增或遞減的操作實(shí)現(xiàn)的非常好。集合(Set)和有序集合(SortedSet)也使得我們?cè)趫?zhí)行這些操作的時(shí)候變的非常簡(jiǎn)單,Redis 只是正好提供了這兩種數(shù)據(jù)結(jié)構(gòu)。所以,我們要從排序集合中獲取到排名最靠前的 10 個(gè)用戶–我們稱之為“user_scores”,我們只需要像下面一樣執(zhí)行即可:
    當(dāng)然,這是假定你是根據(jù)你用戶的分?jǐn)?shù)做遞增的排序。如果你想返回用戶及用戶的分?jǐn)?shù),你需要這樣執(zhí)行:
    ZRANGE user_scores 0 10 WITHSCORESAgora Games 就是一個(gè)很好的例子,用 Ruby 實(shí)現(xiàn)的,它的排行榜就是使用 Redis 來存儲(chǔ)數(shù)據(jù)的,你可以在這里看到。
  • (5)、發(fā)布/訂閱
    最后(但肯定不是最不重要的)是 Redis 的發(fā)布/訂閱功能。發(fā)布/訂閱的使用場(chǎng)景確實(shí)非常多。我已看見人們?cè)谏缃痪W(wǎng)絡(luò)連接中使用,還可作為基于發(fā)布/訂閱的腳本觸發(fā)器,甚至用 Redis 的發(fā)布/訂閱功能來建立聊天系統(tǒng)?。ú?,這是真的,你可以去核實(shí))。

14、Redis 支持的 Java 客戶端都有哪些?官方推薦用哪個(gè)?

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

15、Redis 和 Redisson 有什么關(guān)系?

Redisson 是一個(gè)高級(jí)的分布式協(xié)調(diào) Redis 客服端,能幫助用戶在分布式環(huán)境中輕松實(shí)現(xiàn)一些 Java 的對(duì)象 (Bloom filter, BitSet, Set, SetMultimap, ScoredSortedSet, SortedSet, Map, ConcurrentMap, List,ListMultimap, Queue, BlockingQueue, Deque, BlockingDeque, Semaphore, Lock, ReadWriteLock,AtomicLong, CountDownLatch, Publish / Subscribe, HyperLogLog)。

16、Jedis 與 Redisson 對(duì)比有什么優(yōu)缺點(diǎn)?

Jedis 是 Redis 的 Java 實(shí)現(xiàn)的客戶端,其 API 提供了比較全面的 Redis 命令的支持;Redisson 實(shí)現(xiàn)了分布式和可擴(kuò)展的 Java 數(shù)據(jù)結(jié)構(gòu),和 Jedis 相比,功能較為簡(jiǎn)單,不支持字符串操作,不支持排序、事務(wù)、管道、分區(qū)等 Redis 特性。Redisson 的宗旨是促進(jìn)使用者對(duì) Redis 的關(guān)注分離,從而讓使用者能夠?qū)⒕Ω械胤旁谔幚順I(yè)務(wù)邏輯上。

17、Redis 如何設(shè)置密碼及驗(yàn)證密碼?

設(shè)置密碼:config set requirepass 123456
授權(quán)密碼:auth 123456

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

Redis 集群沒有使用一致性 hash,而是引入了哈希槽的概念,Redis 集群有 16384 個(gè)哈希槽,每個(gè) key 通過 CRC16 校驗(yàn)后對(duì) 16384 取模來決定放置哪個(gè)槽,集群的每個(gè)節(jié)點(diǎn)負(fù)責(zé)一部分hash 槽。

19、Redis 集群的主從復(fù)制模型是怎樣的?

為了使在部分節(jié)點(diǎn)失敗或者大部分節(jié)點(diǎn)無法通信的情況下集群仍然可用,所以集群使用了主從復(fù)制模型,每個(gè)節(jié)點(diǎn)都會(huì)有 N-1 個(gè)復(fù)制品.

20、Redis 集群會(huì)有寫操作丟失嗎?為什么?

Redis 并不能保證數(shù)據(jù)的強(qiáng)一致性,這意味這在實(shí)際中集群在特定的條件下可能會(huì)丟失寫操作。

以上就是Redis常見面試真題和答案的詳細(xì)內(nèi)容了,看完之后是否有所收獲呢?如果想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

當(dāng)前標(biāo)題:Redis常見面試真題和答案-創(chuàng)新互聯(lián)
本文鏈接:http://www.rwnh.cn/article12/hdcdc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、微信公眾號(hào)、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站建設(shè)做網(wǎng)站、用戶體驗(yàn)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管
金沙县| 玉林市| 蒙城县| 泰兴市| 长乐市| 库尔勒市| 策勒县| 鹤峰县| 巴楚县| 银川市| 龙南县| 台江县| 山丹县| 永寿县| 增城市| 定远县| 烟台市| 松阳县| 绍兴县| 巍山| 玉树县| 宁夏| 福泉市| 子长县| 三穗县| 萨迦县| 萨嘎县| 德江县| 钟祥市| 焉耆| 栖霞市| 长阳| 阳朔县| 东城区| 娄底市| 登封市| 广宗县| 张家界市| 鄂州市| 全南县| 广东省|