![]()
2.1 前言 Redis的作者antirez(Salvatore Sanfilippo)曾經(jīng)發(fā)表了一篇名為Redis宣言(Redis Manifesto)的文章,文中列舉了Redis 的七個(gè)原則,以向大家闡明Redis 的思想。
1、Redis是一個(gè)操作數(shù)據(jù)結(jié)構(gòu)的語(yǔ)言工具,它提供基于TCP的協(xié)議以操作豐富的數(shù)據(jù)結(jié)構(gòu)。在Redis中,數(shù)據(jù)結(jié)構(gòu)這個(gè)詞的意義不僅表示在某種數(shù)據(jù)結(jié)構(gòu)上的操作,更包括了結(jié)構(gòu)本身及這些操作的時(shí)間空間復(fù)雜度。
2、Redis定位于一個(gè)內(nèi)存數(shù)據(jù)庫(kù),正是由于內(nèi)存的快速訪問(wèn)特性,才使得Redis能夠有如此高的性能,才使得Redis能夠輕松處理大量復(fù)雜的數(shù)據(jù)結(jié)構(gòu),Redis會(huì)嘗試其它的存儲(chǔ)方面的選擇,但是永遠(yuǎn)不會(huì)改變它是一個(gè)內(nèi)存數(shù)據(jù)庫(kù)的角色。
3、Redis使用基礎(chǔ)的API操作基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu),Redis的API與數(shù)據(jù)結(jié)構(gòu)一樣,都是一些最基礎(chǔ)的元素,你幾乎可以將任何信息交互使用此API格式表示。作者調(diào)侃說(shuō),如果有其它非人類的智能生物存在,他們也能理解Redis的API。因?yàn)樗侨绱说幕A(chǔ)。
4、Redis有著詩(shī)一般優(yōu)美的代碼,經(jīng)常有一些不太了解Redis 有的人會(huì)建議Redis采用一些其它人的代碼,以實(shí)現(xiàn)一些Redis 未實(shí)現(xiàn)的功能,但這對(duì)我們來(lái)說(shuō)就像是非要給《紅樓夢(mèng)》接上后四十回一樣。
5、Redis始終避免復(fù)雜化,我們認(rèn)為設(shè)計(jì)一個(gè)系統(tǒng)的本質(zhì),就是與復(fù)雜化作戰(zhàn)。我們不會(huì)為了一個(gè)小功能而往源碼里添加上千行代碼,解決復(fù)雜問(wèn)題的方法就是讓復(fù)雜問(wèn)題永遠(yuǎn)不要提復(fù)雜的問(wèn)題。
6、Redis支持兩個(gè)層成的API,第一個(gè)層面包含部分操作API,但它支持用于分布式環(huán)境下的Redis。第二個(gè)層面的API支持更復(fù)雜的multi-key操作。它們各有所長(zhǎng),但是我們不會(huì)推出兩者都支持的API,但我們希望能夠提供實(shí)例間數(shù)據(jù)遷移的命令,并執(zhí)行multi-key操作。
7、我們以優(yōu)化代碼為樂(lè),我們相信編碼是一件辛苦的工作,唯一對(duì)得起這辛苦的就是去享受它。如果我們?cè)诰幋a中失去了樂(lè)趣,那最好的解決辦法就是停下來(lái)。我們決不會(huì)選擇讓Redis不好玩的開(kāi)發(fā)模式。
Redis的作者antirez曾笑稱Redis為一個(gè)數(shù)據(jù)結(jié)構(gòu)服務(wù)器(data structures server),我認(rèn)為這是一個(gè)非常準(zhǔn)確的表述,Redis的所有功能就是將數(shù)據(jù)以其固有的幾種結(jié)構(gòu)來(lái)保存,并提供給用戶操作這幾種結(jié)構(gòu)的接口。本文將介紹Redis支持的各種數(shù)據(jù)類型及其操作接口。
-------------------------------------------------------------------
《MongoDB管理與開(kāi)發(fā)精要》、《Redis實(shí)戰(zhàn)》作者
ChinaUnix.net專家博主 http://cdhongwan.blog.chinaunix.net
@CD紅丸 http://weibo.com/u/2446082491
|