真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

第一篇——Redis面試題,來(lái)看看你能答對(duì)幾題(附答案)-創(chuàng)新互聯(lián)

面試題自測(cè):

十年的宜良網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。營(yíng)銷(xiāo)型網(wǎng)站的優(yōu)勢(shì)是能夠根據(jù)用戶(hù)設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整宜良建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“宜良網(wǎng)站設(shè)計(jì)”,“宜良網(wǎng)站推廣”以來(lái),每個(gè)客戶(hù)項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

1、什么是 Redis?簡(jiǎn)述它的優(yōu)缺點(diǎn)?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

更多面試資料,可以加VX領(lǐng)取:13272413561
以下是答案

第一篇——Redis面試題,來(lái)看看你能答對(duì)幾題(附答案)

1、什么是 Redis?簡(jiǎn)述它的優(yōu)缺點(diǎn)?
Redis 的全稱(chēng)是:Remote Dictionary.Server,本質(zhì)上是一個(gè) Key-Value 類(lèi)型的內(nèi)存數(shù)據(jù)庫(kù),很像 memcached,整個(gè)數(shù)據(jù)庫(kù)統(tǒng)統(tǒng)加載在內(nèi)存當(dāng)中進(jìn)行操作,定期通過(guò)異步操作把數(shù)據(jù)庫(kù)數(shù)據(jù) flush 到硬盤(pán) 上進(jìn)行保存。 因?yàn)槭羌儍?nèi)存操作,Redis 的性能非常出色,每秒可以處理超過(guò) 10 萬(wàn)次讀寫(xiě)操作,是已知性能最快的 Key-Value DB。 Redis 的出色的地方不僅僅是性能,Redis 大的魅力是支持保存多種數(shù)據(jù)結(jié)構(gòu),此外單個(gè) value 的大限 制是 1GB,不像 memcached 只能保存 1MB 的數(shù)據(jù),因此 Redis 可以用來(lái)實(shí)現(xiàn)很多有用的功能。 比方說(shuō)用他的 List 來(lái)做 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 來(lái)用。 Redis 的主要缺點(diǎn)是數(shù)據(jù)庫(kù)容量受到物理內(nèi)存的限制,不能用作海量數(shù)據(jù)的高性能 讀寫(xiě),因此 Redis 適合的場(chǎng)景主要局限在較小數(shù)據(jù)量的高性能操作和運(yùn)算上。


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

1.memcached 所有的值均是簡(jiǎn)單的字符串,redis 作為其替代者,支持更為豐富的數(shù)據(jù)類(lèi)型

2.redis 的速度比 memcached 快很多 redis 的速度比 memcached 快很多

3.redis 可以持久化其數(shù)據(jù) redis 可以持久化其數(shù)據(jù)

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

String、List、Set、Sorted Set、hashes


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

內(nèi)存。

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

1.noeviction:返回錯(cuò)誤當(dāng)內(nèi)存限制達(dá)到,并且客戶(hù)端嘗試執(zhí)行會(huì)讓更多內(nèi)存被使用的命令。

2.allkeys-lru: 嘗試回收最少使用的鍵(LRU),使得新添加的數(shù)據(jù)有空間存放。

3.volatile-lru: 嘗試回收最少使用的鍵(LRU),但僅限于在過(guò)期集合的鍵,使得新添加的數(shù)據(jù)有空間存 放。

4.allkeys-random: 回收隨機(jī)的鍵使得新添加的數(shù)據(jù)有空間存放。

5.volatile-random: 回收隨機(jī)的鍵使得新添加的數(shù)據(jù)有空間存放,但僅限于在過(guò)期集合的鍵。

6.volatile-ttl: 回收在過(guò)期集合的鍵,并且優(yōu)先回收存活時(shí)間(TTL)較短的鍵,使得新添加的數(shù)據(jù)有空間 存放。

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

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

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

512M

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

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

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

1.codis

2.目前用的最多的集群方案,基本和 twemproxy 一致的效果,但它支持在節(jié)點(diǎn)數(shù)量改變情況下,舊節(jié)點(diǎn) 數(shù)據(jù)可恢復(fù)到新 hash 節(jié)點(diǎn)。 redis cluster3.0 自帶的集群,特點(diǎn)在于他的分布式算法不是一致性 hash,而是 hash 槽的概念,以及自 身支持節(jié)點(diǎn)設(shè)置從節(jié)點(diǎn)。具體看官方文檔介紹。

3.在業(yè)務(wù)代碼層實(shí)現(xiàn),起幾個(gè)毫無(wú)關(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)控。

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

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

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

redis 內(nèi)存數(shù)據(jù)集大小上升到一定大小的時(shí)候,就會(huì)施行數(shù)據(jù)淘汰策略。 其實(shí)面試除了考察 Redis,不少公司都很重視高并發(fā)高可用的技術(shù),特別是一線(xiàn)互聯(lián)網(wǎng)公司,分布式、 JVM、spring 源碼分析、微服務(wù)等知識(shí)點(diǎn)已是面試的必考題。

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

(1)會(huì)話(huà)緩存(Session Cache) 最常用的一種使用 Redis 的情景是會(huì)話(huà)緩存(sessioncache),用 Redis 緩存會(huì)話(huà)比其他存儲(chǔ)(如 Memcached)的優(yōu)勢(shì)在于:Redis 提供持久化。當(dāng)維護(hù)一個(gè)不是嚴(yán)格要求一致性的緩存時(shí),如果用戶(hù)的 購(gòu)物車(chē)信息全部丟失,大部分人都會(huì)不高興的,現(xiàn)在,他們還會(huì)這樣嗎? 幸運(yùn)的是,隨著 Redis 這些年的改進(jìn),很容易找到怎么恰當(dāng)?shù)氖褂?Redis 來(lái)緩存會(huì)話(huà)的文檔。甚至廣為 人知的商業(yè)平臺(tái) Magento 也提供 Redis 的插件。

(2)全頁(yè)緩存(FPC) 除基本的會(huì)話(huà) token 之外,Redis 還提供很簡(jiǎn)便的 FPC 平臺(tái)。回到一致性問(wèn)題,即使重啟了 Redis 實(shí) 例,因?yàn)橛写疟P(pán)的持久化,用戶(hù)也不會(huì)看到頁(yè)面加載速度的下降,這是一個(gè)極大改進(jìn),類(lèi)似 PHP 本地 FPC。 再次以 Magento 為例,Magento 提供一個(gè)插件來(lái)使用 Redis 作為全頁(yè)緩存后端。 此外,對(duì) WordPress 的用戶(hù)來(lái)說(shuō),Pantheon 有一個(gè)非常好的插件 wp-redis,這個(gè)插件能幫助你以最快 速度加載你曾瀏覽過(guò)的頁(yè)面。

(3)隊(duì)列 Reids 在內(nèi)存存儲(chǔ)引擎領(lǐng)域的一大優(yōu)點(diǎn)是提供 list 和 set 操作,這使得 Redis 能作為一個(gè)很好的消息隊(duì)列 平臺(tái)來(lái)使用。Redis 作為隊(duì)列使用的操作,就類(lèi)似于本地程序語(yǔ)言(如 Python)對(duì) list 的 push/pop 操作。 如果你快速的在 Google 中搜索“Redis queues”,你馬上就能找到大量的開(kāi)源項(xiàng)目,這些項(xiàng)目的目的 就是利用 Redis 創(chuàng)建非常好的后端工具,以滿(mǎn)足各種隊(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è)用戶(hù)–我們稱(chēng)之為“user_scores”,我們只需要像 下面一樣執(zhí)行即可: 當(dāng)然,這是假定你是根據(jù)你用戶(hù)的分?jǐn)?shù)做遞增的排序。如果你想返回用戶(hù)及用戶(hù)的分?jǐn)?shù),你需要這樣執(zhí) 行: ZRANGE user_scores 0 10 WITHSCORES Agora Games 就是一個(gè)很好的例子,用 Ruby 實(shí)現(xiàn)的,它的排行榜就是使用 Redis 來(lái)存儲(chǔ)數(shù)據(jù)的,你可 以在這里看到。

(5)發(fā)布/訂閱 最后(但肯定不是最不重要的)是 Redis 的發(fā)布/訂閱功能。發(fā)布/訂閱的使用場(chǎng)景確實(shí)非常多。我已看見(jiàn) 人們?cè)谏缃痪W(wǎng)絡(luò)連接中使用,還可作為基于發(fā)布/訂閱的腳本觸發(fā)器,甚至用 Redis 的發(fā)布/訂閱功能來(lái)建 立聊天系統(tǒng)!

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

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

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

Redisson 是一個(gè)高級(jí)的分布式協(xié)調(diào) Redis 客服端,能幫助用戶(hù)在分布式環(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)。

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

Jedis 是 Redis 的 Java 實(shí)現(xiàn)的客戶(hù)端,其 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ù)邏輯上。

更多面試資料,可以加VX領(lǐng)?。?3272413561

創(chuàng)新互聯(lián)www.cdcxhl.cn,專(zhuān)業(yè)提供香港、美國(guó)云服務(wù)器,動(dòng)態(tài)BGP最優(yōu)骨干路由自動(dòng)選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動(dòng)現(xiàn)已開(kāi)啟,新人活動(dòng)云服務(wù)器買(mǎi)多久送多久。


本文名稱(chēng):第一篇——Redis面試題,來(lái)看看你能答對(duì)幾題(附答案)-創(chuàng)新互聯(lián)
URL網(wǎng)址:http://weahome.cn/article/dsgcod.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部