2018-01-05

1.存儲key value以及5種不同的數據結構之間的mapping(映射)
2.redis不使用表格

  1. memcached只能保存字符串
  2. redis儲存---------主儲存(primary storage)
    |
    |
    |
    |-------二級儲存(secondary storage)
    |
    |
    |
    |

5.需要考慮的問題是,由于redis屬于內存數據庫,當服務器關閉的時候,數據也會丟失。那么數據該何去何從,但是redis提供了兩種數據持久化的方式,都可以將數據以小而緊湊的格式寫入硬盤中,分別為<<<1>>>時間點轉儲(point-in-time dump),其中可以通過在一定時間內到達一定數量的寫入操作執行,當這一條件能夠滿足的時候,又可以通過兩條轉存到硬盤(dump-to-disk)兩條命令的一條來執行;第二種<<<2>>>是將所有修改了數據庫的命令都寫入一個只追加(append-only)的文件里面,用戶可以根據數據的重要程度,來設置不同步(sync),每秒同步一次或者每寫入一個命令同步一次。

6.Redis的數據結構
---String 可以是字符串,整數或者浮點數
---List 一個鏈表,鏈表上的每個節點都包含了一個字符串
---Set 包含字符串的無序收集器,并且被包含的字符串都是獨一無二的
---Zset 字符串成員與浮點數分值之間的有序映射,元素的排列順序由分值大小決定
---Hash 包含鍵值對的無序散列表
其中Set和Zset是Redis特有的數據結構


使用的Nodejs來與Redis進行交互
首先要在nodejs相關項目下安裝redis包,執行npm install redis --save
在nodejs中啟動server.js,server.js相關代碼如下
對于set的基本操作如下

const redis = require('redis');

const client = redis.createClient();

client.on('erro', (err)=>{
    console.log('Error' + err)
})
//string key, string value
client.set('hello', 'world', redis.print);
client.get("hello", function(err, reply) {
    // reply is null when the key is missing 
    console.log(reply);
});

這僅僅是對redis中的set結構進行設置,此時在控制臺返回的結果為Reply:OK以及world


對于鏈表list,一個鏈表可以有序的保存多個字符串,其中包含的字符串可以重復出現,其中對于鏈表的操作LPUSH,RPUSH分別是從list的左邊和右邊推入元素,而LPOP以及RPOP是分別從list的左邊以及右邊彈出元素。LINDEX是獲取給定位置的單個元素,LRANGE是返回列表給定范圍內的所有元素

client.rpush(['frameworks', 'angularjs', 'backbone'], function(err, reply) {
    console.log(reply); //prints 2
});

返回的是list的長度。所表達的信息是創建了一個叫frameworkslist,然后推入了兩個元素,分別為angularbackbone,返回的是list的長度

client.lrange('frameworks', 0, -1, function(err, reply) {
    console.log(reply); // ['angularjs', 'backbone']
});

Redis集合(set)

Redis集合和Redis列表都可以保存多個字符串,不同點在于,Redis集合通過散列表來保證儲存的字符串各不相同,而Redis列表中卻可以儲存相同的字符串,由于Redis集合使用了無序(unordered)的保存方式來保存元素,因此Redis集合不能像鏈表一樣從兩側推入或者彈出元素。不過用戶可以通過SADD或者SREM進行添加元素到集合中,或者從集合中刪除某特定元素。SISMEMBER可以快速檢查某個元素是否存在Redis集合里。或者使用SMEMBERS獲取集合內包含的所有元素
在Nodejs中使用如下

client.sadd(['tags', 'angularjs', 'backbonejs', 'emberjs'], function(err, reply) {
    console.log(reply); // 3
});

返回set的長度為3,tags為Redis集合的名字。

client.smembers('tags', function(err, reply) {
    console.log(reply);
});

此時會返回[ 'emberjs', 'backbonejs', 'angularjs' ],即集合tags里面的內容


Redis散列(hash)

Redis散列可以保存多個鍵值對之間的映射。和字符串一樣,散列的值即可以是字符串,也可以是數字。并且用戶可以對這些數值做自增自減操作。

client.hmset('frameworks', {
    'javascript': 'AngularJS',
    'css': 'Bootstrap',
    'node': 'Express'
});

Redis的有序集合(zset)

有序集合和散列一樣,用來存儲鍵值對;有序集合的鍵被稱作成員(member),每個成員各不相同;有序集合的值被稱為分值(score),分值必須為浮點數,Redis有序集合是唯一一個即可以根據成員訪問元素,也可以通過分值以及分值的排列順序來訪問元素的結構


?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,106評論 6 542
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,441評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,211評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,736評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,475評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,834評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,829評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,009評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,559評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,306評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,516評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,038評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,728評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,132評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,443評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,249評論 3 399
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,484評論 2 379

推薦閱讀更多精彩內容