1 回答

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超13個(gè)贊
簡(jiǎn)而言之,Redis是一種強(qiáng)大的key-value數(shù)據(jù)庫,之所以強(qiáng)大有兩點(diǎn):響應(yīng)速度快(所以數(shù)據(jù)內(nèi)存存儲(chǔ),只在必要時(shí)寫入磁盤),特性豐富(支持多種數(shù)據(jù)類型,以及各類型上的復(fù)雜操作)。
事實(shí)上,Redis的一個(gè)重要特性就是它并非通常意義上的數(shù)據(jù)庫,雖然稱之為數(shù)據(jù)庫是因?yàn)樗梢詾槟愦鎯?chǔ)和維護(hù)數(shù)據(jù),但它并不像關(guān)系數(shù)據(jù)庫那樣提供任何的SQL方言。不過不用擔(dān)心,Redis并不是吞噬數(shù)據(jù)的黑洞,它只是不支持SQL及相關(guān)功能,但卻提供了穩(wěn)健的協(xié)議用于與之交互。
在Redis中,沒有數(shù)據(jù)表的概念,也無須關(guān)心select、join、view等操作或功能,同時(shí)也不提供類似于int或varchar的數(shù)據(jù)字段。你面對(duì)的將是相對(duì)原始的數(shù)據(jù)集合及數(shù)據(jù)類型。
探索之二:Available datatypes
下面我們深入看下這個(gè)奇怪的數(shù)據(jù)庫是如何工作的。如上所見,Redis是基于key-value范式存儲(chǔ)數(shù)據(jù),所以先來重點(diǎn)看下"key"的概念。
key本質(zhì)上就是簡(jiǎn)單的字符串,諸如"username"、"password"等。在定義key時(shí),除了不能使用空格,你可以隨意的使用普通的字符、數(shù)字等,像".",":","_"等在定義key時(shí)都能正常使用,所以像"user_name", "user:123:age", "user:123:username"都是不錯(cuò)的key的定義方式。
不像RDBMS中的字段名稱,這里的key是Redis中的重要組成部分,所以我們必須在處理key時(shí)多加小心。在下面的講述中,Redis并沒有table的概念,所以像"SELECT username from users WHERE user_id=123;"這種簡(jiǎn)單任務(wù)都只能換種方式實(shí)現(xiàn),為了達(dá)到這種目的,在Redis上,一種方式是通過key "user:123:username"來獲取結(jié)果value。如你所見,key的定義中攜帶了神秘信息(像user ids)。在Redis中,key的重要性可見一斑。(其他key-value數(shù)據(jù)庫中key的地位也是如此。)
- 1 回答
- 0 關(guān)注
- 857 瀏覽
添加回答
舉報(bào)