Redis筆記

概念

概念: redis是一 款高性能的NOSQL系列的非關(guān)系型數(shù)據(jù)庫

什么是NOSQL

NOSQL(NOSQL = Not only SQL), 意即“不僅僅是SQL",是一項全新的數(shù)據(jù)庫理念,泛指非關(guān)系型的數(shù)據(jù)庫舀寓。

隨著互聯(lián)網(wǎng)web2. 0網(wǎng)站的興起胆数,傳統(tǒng)的關(guān)系數(shù)據(jù)庫在應(yīng)付web2. 0網(wǎng)站,特別是超大規(guī)模和高并發(fā)的SNS類型的web2. 0純動態(tài)網(wǎng)站已經(jīng)顯得力不從心互墓,暴露了很多難以克服的問題必尼,而非關(guān)系型的數(shù)據(jù)庫則由于其本身的特點得到了非常迅速的發(fā)展。NOSQL 數(shù)據(jù)庫的產(chǎn)生就是為了解決大規(guī)模數(shù)據(jù)集合多重數(shù)據(jù)種類帶來的挑戰(zhàn),尤其是大故據(jù)應(yīng)用難題判莉。

NOSQL 和關(guān)系型數(shù)據(jù)庫比較

優(yōu)點:

  1. 成本: nosql數(shù)據(jù)庫簡單易部署豆挽,基本都是開源軟件,不需要像使用oracle那樣花費大量成本購買使用券盅,相比關(guān)系型數(shù)據(jù)庫價格便宜帮哈。
  2. 查詢速度: nosql數(shù)據(jù)庫將數(shù)據(jù)存儲于緩存之中,關(guān)系型數(shù)據(jù)庫將數(shù)據(jù)存儲在硬盤中锰镀,自然查詢速度遠不及nosql數(shù)據(jù)庫娘侍。
  3. 存儲數(shù)據(jù)的格式: nosql的存儲格式是key,value形式,文檔形式泳炉、圖片形式等等憾筏,所以可以存儲基礎(chǔ)類型以及對象或者是集合等各種格式,而數(shù)據(jù)庫則只支持基礎(chǔ)類型花鹅。
  4. 擴展性:關(guān)系型數(shù)據(jù)庫有類似join這樣的多表查詢機制的限制導(dǎo)致擴展很艱難氧腰。

缺點:

  1. 維護的工具和資料有限,因為nosql是屬于新的技術(shù)刨肃,不能和關(guān)系型數(shù)據(jù)庫10幾年的技術(shù)同日而語容贝。
  2. 不提供對sql的支持,如果不支持sql這樣的工業(yè)標(biāo)準(zhǔn)之景,將產(chǎn)生一定用戶的學(xué) 習(xí)和使用成本斤富。
  3. 不提供關(guān)系型數(shù)據(jù)庫對事務(wù)的處理。

非關(guān)系型數(shù)據(jù)庫的優(yōu)勢:

  1. 性能NOSQL是基于鍵值對的锻狗,可以想象成表中的主鍵和值的對應(yīng)關(guān)系满力,而且不需要經(jīng)過SQL層的解析,所以性能非常高轻纪。
  2. 可擴展性同樣也是因為基于鍵值對油额,數(shù)據(jù)之間沒有耦合性,所以非常容易水平擴展刻帚。

關(guān)系型數(shù)據(jù)庫的優(yōu)勢 :

  1. 復(fù)雜查詢可以用SQL語句方便的在一個表以及多個表之間做非常復(fù)雜的數(shù)據(jù)查詢潦嘶。
  2. 事務(wù)支持使得對于安全性能很高的數(shù)據(jù)訪問要求得以實現(xiàn)。對于這兩類數(shù)據(jù)庫崇众,對方的優(yōu)勢就是自己的弱勢,反之亦然掂僵。

總結(jié)

關(guān)系型數(shù)據(jù)庫與NOSQL數(shù)據(jù)庫并非對立而是互補的關(guān)系,即通常情況下使用關(guān)系型數(shù)據(jù)庫顷歌,在適合使用NOSQL的時候使用NOSQL數(shù)據(jù)庫,讓NOSQL數(shù)據(jù)庫對關(guān)系型數(shù)據(jù)庫的不足進行彌補锰蓬。

一般會將數(shù)據(jù)存 儲在關(guān)系型數(shù)據(jù)庫中,在nosql 數(shù)據(jù)庫中備份存儲關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)

主流的NOSQL產(chǎn)品

  1. 鍵值(Key-Value )存儲數(shù)據(jù)庫
  • 相關(guān)產(chǎn)品: Tokyo Cabinet/Tyrant. Redis. Voldemort. Berkeley DB
  • 典型應(yīng)用:內(nèi)容緩存眯漩,主要用于處理大量數(shù)據(jù)的高訪問負載芹扭。
  • 數(shù)據(jù)模型:一系列鍵值對
  • 優(yōu)勢:快速查詢
  • 劣勢:存儲的數(shù)據(jù)缺少結(jié)構(gòu)化
  1. 列存儲數(shù)據(jù)庫

    • 相關(guān)產(chǎn)品: Cassandra, HBase, Riak
    • 典型應(yīng)用:分布式的文件系統(tǒng)
    • 數(shù)據(jù)模型:以列簇式存儲麻顶,將同一列數(shù)據(jù)存在一起
    • 優(yōu)勢:查找速度快,可擴展性強舱卡,更容易進行分布式擴展
    • 劣勢:功能相對局限
  2. 文檔型數(shù)據(jù)庫

    • 相關(guān)產(chǎn)品: CouchDB. MongoDB
    • 典型應(yīng)用: Web應(yīng)用(與Key-Value類似辅肾,Value是結(jié)構(gòu)化的)
    • 數(shù)據(jù)模型: 一系列鍵值對
    • 優(yōu)勢:數(shù)據(jù)結(jié)構(gòu)要求不嚴(yán)格
    • 劣勢:查詢性能不高,而且缺乏統(tǒng)一的查詢語法
  3. 圖形(Graph)數(shù)據(jù)庫

    • 相關(guān)數(shù)據(jù)庫: Ne04J轮锥、InfoGrid. Infinite Graph
    • 典型應(yīng)用:社交網(wǎng)絡(luò)
    • 數(shù)據(jù)模型:圖結(jié)構(gòu)
    • 優(yōu)勢:利用圖結(jié)構(gòu)相關(guān)算法宛瞄。
    • 劣勢:需要對整個圖做計算才能得出結(jié)果,不容易做分布式的集群方案交胚。

什么是Redis

Redis是用C語言開發(fā)的一個開源的高性能鍵值對(key-value) 數(shù)據(jù)庫份汗,官方提供測試數(shù)據(jù), 50個并發(fā)執(zhí)行100000個請求,讀的速度是110000次/s蝴簇,寫的速度是81000次/s杯活,且Redis通過提供多種鍵值故據(jù)類型來適應(yīng)不同場景下的存儲需求,目前為止Redis支持的鍵值數(shù)據(jù)類型如下:

  1. 字符串類型string
  2. 哈希類型hash
  3. 列表類型list
  4. 集合類型set
  5. 有序集合類型sortedset

redis的應(yīng)用場景

  • 緩存(數(shù)據(jù)查詢熬词、短連接旁钧、新聞內(nèi)容、商品內(nèi)容等等)
  • 聊天室的在線好友列表
  • 任務(wù)隊列互拾。(秒殺歪今, 搶購、12306等等)
  • 應(yīng)用排行榜
  • 網(wǎng)站訪問統(tǒng)計
  • 數(shù)據(jù)過期處理(可以精確到毫秒)
  • 分布式集群架構(gòu)中的session分副

redis命令操作

redis數(shù)據(jù)結(jié)構(gòu):

redis存儲的是:key,value格式的數(shù)據(jù)颜矿,其中key都是字符串寄猩,value有五種不同的數(shù)據(jù)結(jié)構(gòu)

  1. 字符串類型 sting
  2. 哈希類型 hash:map格式
  3. 列表結(jié)構(gòu) list:linkedlist格式,支持重復(fù)元素
  4. 集合類型 set:不允許重復(fù)元素
  5. 有序集合類型 sortedsed:不允許重復(fù)元素骑疆,且元素有序

字符串類型

  1. 存儲:set key value
  2. 獲忍锲:get key
  3. 刪除:del key

哈希類型 hash

  1. 存儲:hset key field value

  2. 獲取:

    • hget key field: 獲取指定的field對應(yīng)的值
    • hgetall key :獲取所有的field和value
  3. 刪除:hdel key field

列表類型list

可以添加一個元素到列表的頭部(左邊)或者尾部(右邊)

  1. 添加:

    • lpush key value: 將元素加入列表左表
    • rpush key value: 將元素加入列表右表
  2. 獲取

  • lrange key start end: 范圍獲取
  1. 刪除:
  • lpop key :刪除列表最左邊元素箍铭,并將元素返回
  • rpop key :刪除列表最右邊元素泊柬,并將元素返回

集合類型set:

不允許重復(fù)元素

  1. 存儲:sadd key value
  2. 獲取:smembers key :獲取set集合所有元素
  3. 刪除:srem key value: 刪除set集合中的某個元素

有序集合類型 sortedset

不允許重復(fù)元素诈火,且元素有序

  1. 存儲:zadd key score value
  2. 獲仁蘖蕖:zrange key start end
  3. 刪除:zrem key value
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌甲抖,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蒲跨,死亡現(xiàn)場離奇詭異译断,居然都是意外死亡授翻,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來堪唐,“玉大人巡语,你說我怎么就攤上這事』床ぃ” “怎么了男公?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長合陵。 經(jīng)常有香客問我枢赔,道長,這世上最難降的妖魔是什么拥知? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任踏拜,我火速辦了婚禮,結(jié)果婚禮上低剔,老公的妹妹穿的比我還像新娘速梗。我一直安慰自己,他們只是感情好襟齿,可當(dāng)我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布姻锁。 她就那樣靜靜地躺著,像睡著了一般猜欺。 火紅的嫁衣襯著肌膚如雪位隶。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天开皿,我揣著相機與錄音钓试,去河邊找鬼。 笑死副瀑,一個胖子當(dāng)著我的面吹牛弓熏,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播糠睡,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼挽鞠,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了狈孔?” 一聲冷哼從身側(cè)響起信认,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎均抽,沒想到半個月后嫁赏,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡油挥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年潦蝇,在試婚紗的時候發(fā)現(xiàn)自己被綠了款熬。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡攘乒,死狀恐怖贤牛,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情则酝,我是刑警寧澤殉簸,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站沽讹,受9級特大地震影響般卑,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜爽雄,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一椭微、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧盲链,春花似錦蝇率、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至侧漓,卻和暖如春锅尘,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背布蔗。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工藤违, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人纵揍。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓顿乒,卻偏偏與公主長得像,于是被迫代替她去往敵國和親泽谨。 傳聞我的和親對象是個殘疾皇子璧榄,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容

  • 前言 在大型應(yīng)用場景中,常常使用nignx做負載均衡以分?jǐn)傉埱髩毫Π杀ⅲS之而來的是session的存儲成為難題骨杂,即服...
    霜漠冰河閱讀 302評論 0 0
  • 1. 概念: redis是一款高性能的NOSQL系列的非關(guān)系型數(shù)據(jù)庫 什么是NOSQLNoSQL(NoSQL = ...
    慵懶的陽光丶閱讀 212評論 0 0
  • Redis簡介: Redis 是完全開源免費的搓蚪,遵守 BSD 協(xié)議,是一個高性能的 key - value 數(shù)據(jù)庫...
    套馬桿的程序員閱讀 237評論 0 0
  • 1丁鹉、Redis是什么妒潭?是一個高性能的一個鍵值數(shù)據(jù)庫悴能,NoSql數(shù)據(jù)庫(非關(guān)系型數(shù)據(jù)庫) 2、什么是非關(guān)系型數(shù)據(jù)庫杜耙?...
    呆萌孫先生閱讀 210評論 0 0
  • 今天感恩節(jié)哎搜骡,感謝一直在我身邊的親朋好友拂盯。感恩相遇佑女!感恩不離不棄。 中午開了第一次的黨會谈竿,身份的轉(zhuǎn)變要...
    迷月閃星情閱讀 10,559評論 0 11