<b>1.1 盛贊redis</b>
redis是一種基于鍵值對(key-value)的nosql資料庫,與很多鍵值對資料庫不同的是,redis中的值可以是由string(字元串)、hash(哈希)、list(清單)、set(集合)、zset(有序集合)、bitmaps(位圖)、hyperloglog、geo(地理資訊定位)等多種資料結構和算法組成,是以redis可以滿足很多的應用場景,而且因為redis會将所有資料都存放在記憶體中,是以它的讀寫性能非常驚人。不僅如此,redis還可以将記憶體的資料利用快照和日志的形式儲存到硬碟上,這樣在發生類似斷電或者機器故障的時候,記憶體中的資料不會“丢失”。除了上述功能以外,redis還提供了鍵過期、釋出訂閱、事務、流水線、lua腳本等附加功能。總之,如果在合适的場景使用好redis,它就會像一把瑞士軍刀一樣所向披靡。
2008年,redis的作者salvatore
sanfilippo在開發一個叫lloogg的網站時,需要實作一個高性能的隊列功能,最開始是使用mysql來實作的,但後來發現無論怎麼優化sql語句都不能使網站的性能提高上去,再加上自己囊中羞澀,于是他決定自己做一個專屬于lloogg的資料庫,這個就是redis的前身。後來,salvatore sanfilippo将redis 1.0的源碼開放到github上,可能連他自己都沒想到,redis後來如此受歡迎。
假如現在有人問redis的作者都有誰在使用redis,我想他可以開句玩笑的回答:還有誰不使用redis,當然這隻是開玩笑,但是從redis的官方公司統計來看,有很多重量級的公司都在使用redis,如國外的twitter、instagram、stack overflow、github等,國内就更多了,如果單單從體量來統計,新浪微網誌可以說是全球最大的redis使用者,除了新浪微網誌,還有像阿裡巴巴、騰訊、百度、搜狐、優酷洋芋、美團、小米、唯品會等公司都是redis的使用者。除此之外,許多開源技術像elk等已經把redis作為它們元件中的重要一環,而且redis會在未來的版本中提供子產品系統讓第三方人員實作功能擴充,讓redis發揮出更大的威力。是以,可以這麼說,熟練使用和運維redis已經成為開發運維人員的一個必備技能。