Redis内存数据库必读的4本书
Redis從一個(gè)不為人熟知、只有少量應(yīng)用的嶄新數(shù)據(jù)庫(kù),逐漸變成了內(nèi)存數(shù)據(jù)庫(kù)領(lǐng)域的事實(shí)標(biāo)準(zhǔn)。時(shí)至今日,經(jīng)過(guò)大量的實(shí)踐應(yīng)用,Redis簡(jiǎn)潔高效、安全穩(wěn)定的特性已經(jīng)深入人心。
無(wú)論是國(guó)內(nèi)還是國(guó)外,從五百?gòu)?qiáng)公司到小型初創(chuàng)公司都在使用Redis,很多云服務(wù)提供商還以Redis為基礎(chǔ)構(gòu)建了相應(yīng)的緩存服務(wù)、消息隊(duì)列服務(wù)以及內(nèi)存存儲(chǔ)服務(wù),當(dāng)你使用這些服務(wù)時(shí),實(shí)際上就是在使用Redis。
Redis是一個(gè)主要由Salvatore Sanfilippo(Antirez)開(kāi)發(fā)的開(kāi)源內(nèi)存數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)器,經(jīng)常用作數(shù)據(jù)庫(kù)、緩存以及消息代理等。
Redis因其豐富的數(shù)據(jù)結(jié)構(gòu)、極快的速度、齊全的功能而為人所知,它是目前內(nèi)存數(shù)據(jù)庫(kù)方面的事實(shí)標(biāo)準(zhǔn),在互聯(lián)網(wǎng)上有非常廣泛的應(yīng)用,微博、Twitter、GitHub、Stack Overf?low、知乎等國(guó)內(nèi)外公司都大量地使用了Redis。
Redis之所以廣受開(kāi)發(fā)者歡迎,跟它自身?yè)碛袕?qiáng)大的功能以及簡(jiǎn)潔的設(shè)計(jì)不無(wú)關(guān)系。
Redis最重要的特點(diǎn)有以下幾種(參見(jiàn)下圖):
1. 結(jié)構(gòu)豐富
Redis為用戶提供了字符串、散列、列表、集合、有序集合、HyperLogLog、位圖、流、地理坐標(biāo)等一系列豐富的數(shù)據(jù)結(jié)構(gòu),每種數(shù)據(jù)結(jié)構(gòu)都適用于解決特定的問(wèn)題。
在有需要的時(shí)候,用戶還可以通過(guò)事務(wù)、Lua腳本、模塊等特性,擴(kuò)展已有數(shù)據(jù)結(jié)構(gòu)的功能,甚至從零實(shí)現(xiàn)自己專屬的數(shù)據(jù)結(jié)構(gòu)。通過(guò)這些數(shù)據(jù)結(jié)構(gòu)和特性,Redis能夠確保用戶可以使用適合的工具去解決問(wèn)題。
2. 功能完備
在上述數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)上,Redis提供了很多非常實(shí)用的附加功能,比如自動(dòng)過(guò)期、流水線、事務(wù)、數(shù)據(jù)持久化等,這些功能能夠幫助用戶將Redis應(yīng)用在更多不同的場(chǎng)景中,或者為用戶帶來(lái)便利。
更重要的是,Redis不僅可以單機(jī)使用,還可以多機(jī)使用:通過(guò)Redis自帶的復(fù)制、Sentinel和集群功能,用戶可以將自己的數(shù)據(jù)庫(kù)擴(kuò)展至任意大小。
無(wú)論你運(yùn)營(yíng)的是一個(gè)小型的個(gè)人網(wǎng)站,還是一個(gè)為上千萬(wàn)消費(fèi)者服務(wù)的熱門(mén)站點(diǎn),都可以在Redis中找到你想要的功能,并將其部署到你的服務(wù)器中。
3. 速度飛快
Redis是一款內(nèi)存數(shù)據(jù)庫(kù),它將所有數(shù)據(jù)存儲(chǔ)在內(nèi)存中。因?yàn)橛?jì)算機(jī)訪問(wèn)內(nèi)存的速度要遠(yuǎn)遠(yuǎn)高于訪問(wèn)硬盤(pán)的速度,所以與基于硬盤(pán)設(shè)計(jì)的傳統(tǒng)數(shù)據(jù)庫(kù)相比,Redis在數(shù)據(jù)的存取速度方面具有天然的優(yōu)勢(shì)。
但Redis并沒(méi)有因此放棄在效率方面的追求,相反,Redis的開(kāi)發(fā)者在實(shí)現(xiàn)各項(xiàng)數(shù)據(jù)結(jié)構(gòu)和特性的時(shí)候都經(jīng)過(guò)了大量考量,在底層選用了很多非常高效的數(shù)據(jù)結(jié)構(gòu)和算法,以此來(lái)確保每個(gè)操作都可以在盡可能短的時(shí)間內(nèi)完成,并且盡可能地節(jié)省內(nèi)存。
4. 用戶友好
“雖然Redis提供了很多很棒的數(shù)據(jù)結(jié)構(gòu)和特性,但如果它們使用起來(lái)非常困難的話,那么這一切就沒(méi)有意義。”如果你對(duì)此有所擔(dān)心的話,那么現(xiàn)在可以打消你的顧慮了!Redis API遵循的是UNIX“一次只做一件事,并把它做好”的設(shè)計(jì)哲學(xué)。
Redis的API雖然豐富,但它們大部分都非常簡(jiǎn)短,并且只需接受幾個(gè)參數(shù)就可以完成用戶指定的操作。更棒的是,Redis在官方網(wǎng)站(redis.io)上為每個(gè)API以及相關(guān)特性都提供了詳盡的文檔,并且客戶端本身也可以在線查詢這些文檔。
當(dāng)你遇到文檔無(wú)法解決的問(wèn)題時(shí),還可以在Redis項(xiàng)目的GitHub頁(yè)面:
github.com/antirez/redis
Google Group:
groups.google.com/forum/#!forum/redis-db
甚至作者的Twitter上提問(wèn):
twitter.com/antirez
5. 支持廣泛
正如之前所說(shuō),Redis已經(jīng)在互聯(lián)網(wǎng)公司得到廣泛應(yīng)用,許多開(kāi)發(fā)者為不同的編程語(yǔ)言開(kāi)發(fā)了相應(yīng)的客戶端(redis.io/clients),大多數(shù)編程語(yǔ)言的使用者都可以輕而易舉地找到所需的客戶端,然后直接開(kāi)始使用Redis。
此外,包括亞馬遜、谷歌、RedisLabs、阿里云和騰訊云在內(nèi)的多個(gè)云服務(wù)提供商都提供了基于Redis或兼容Redis的服務(wù),如果你不打算自己搭建Redis服務(wù)器,那么上述提供商可能是不錯(cuò)的選擇。
Redis這么好,要不要現(xiàn)在就學(xué)起來(lái)?我們這就給你推薦4本書(shū):
01 Redis設(shè)計(jì)與實(shí)現(xiàn)
作者:黃健宏
推薦語(yǔ):資深 Redis 技術(shù)專家撰寫(xiě),深入了解 Redis 技術(shù)內(nèi)幕的必讀之作。從源碼角度解析 Redis 的架構(gòu)設(shè)計(jì)、實(shí)現(xiàn)原理和工作機(jī)制,為高效使用 Redis 提供原理性指導(dǎo)。
02 Redis使用手冊(cè)
作者:黃健宏
推薦語(yǔ):《Redis設(shè)計(jì)與實(shí)現(xiàn)》作者黃健宏全新力作,涵蓋Redis5.0以上版本,掌握Redis的案頭必備參考書(shū)。
03 Redis開(kāi)發(fā)與運(yùn)維
作者:付磊 張益軍
推薦語(yǔ):從開(kāi)發(fā)、運(yùn)維兩個(gè)角度總結(jié)了Redis實(shí)戰(zhàn)經(jīng)驗(yàn),深入淺出地剖析底層實(shí)現(xiàn),包含大規(guī)模集群開(kāi)發(fā)與運(yùn)維的實(shí)際案例、應(yīng)用技巧。全面覆蓋Redis 基本功能及應(yīng)用,圖示豐富,講解細(xì)膩。
04 Redis 5設(shè)計(jì)與源碼分析
作者:陳雷 等
推薦語(yǔ):多名專家聯(lián)袂推薦,資深專家聯(lián)合撰寫(xiě),深入理解Redis 5設(shè)計(jì)精髓。系統(tǒng)講解Redis 5設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)、底層命令實(shí)現(xiàn),以及持久化、主從復(fù)制、集群。
總結(jié)
以上是生活随笔為你收集整理的Redis内存数据库必读的4本书的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 精通Hibernate:通过Hibern
- 下一篇: PHP和Mysql处理IP地址