node.js中使用redis數(shù)據(jù)庫(kù)的正確姿勢(shì)

node.js中使用redis數(shù)據(jù)庫(kù)的正確姿勢(shì)

ID:8810629

大?。?6.00 KB

頁(yè)數(shù):5頁(yè)

時(shí)間:2018-04-08

node.js中使用redis數(shù)據(jù)庫(kù)的正確姿勢(shì)_第1頁(yè)
node.js中使用redis數(shù)據(jù)庫(kù)的正確姿勢(shì)_第2頁(yè)
node.js中使用redis數(shù)據(jù)庫(kù)的正確姿勢(shì)_第3頁(yè)
node.js中使用redis數(shù)據(jù)庫(kù)的正確姿勢(shì)_第4頁(yè)
node.js中使用redis數(shù)據(jù)庫(kù)的正確姿勢(shì)_第5頁(yè)
資源描述:

《node.js中使用redis數(shù)據(jù)庫(kù)的正確姿勢(shì)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。

1、Node.js中使用redis數(shù)據(jù)庫(kù)的正確姿勢(shì)Redis是一個(gè)常用的Nosql數(shù)據(jù)庫(kù),一般用來(lái)代替Memcached做緩存服務(wù),同時(shí)它也支持?jǐn)?shù)據(jù)的持久化,有著比較廣泛的應(yīng)用場(chǎng)景。在Java中使用redis我們已經(jīng)比較熟悉了,那么在node.js和koa.js框架中使用Redis的正確姿勢(shì)是怎樣的呢?Redis是完全開(kāi)源免費(fèi)的,遵守BSD協(xié)議,是一個(gè)高性能的key-value數(shù)據(jù)庫(kù)。Redis與其他key-value緩存產(chǎn)品有以下三個(gè)特點(diǎn):*Redis支持?jǐn)?shù)據(jù)的持久化,可以將內(nèi)存中的數(shù)據(jù)保持在磁盤(pán)中,重

2、啟的時(shí)候可以再次加載進(jìn)行使用。*Redis不僅僅支持簡(jiǎn)單的key-value類(lèi)型的數(shù)據(jù),同時(shí)還提供list,set,zset,hash等數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)。*Redis支持?jǐn)?shù)據(jù)的備份,即master-slave模式的數(shù)據(jù)備份。Node.js已經(jīng)有很多redis相關(guān)的庫(kù),我在npm.org上搜了下大概有十幾個(gè)吧,其中經(jīng)常使用的redis,co-redis。由于我用koa做web框架,因此就直接用了koa-redis。這篇文章涉及koa.js,yield生成器和Promise相關(guān)的知識(shí),需要先對(duì)這些概念有一定

3、的認(rèn)識(shí)。下面介紹下redis和koa.js相關(guān)的操作吧,我是在Mac下操作的。1.安裝redis,并啟動(dòng)客戶(hù)端和服務(wù)器端brewinstallredis啟動(dòng)服務(wù)器端redis-server啟動(dòng)客戶(hù)端redis-cli127.0.0.1:6379[1]>select0OK127.0.0.1:6379>keys*(emptylistorset)127.0.0.1:6379>2.安裝node.js和koa.js,node的安裝這里就不講了,通過(guò)brewinstall就可以。npminstallkoaredi

4、skoa-redis可以看到koa-redis已經(jīng)依賴(lài)了co-redis,es6-promisify等庫(kù)`--koa-redis@2.1.2+--co-redis@2.1.1

5、`--es6-promisify@4.1.0

6、`--es6-promise@3.2.1`--hiredis@0.5.0+--bindings@1.2.1`--nan@2.4.03.koa.js操作redis數(shù)據(jù)這塊是本文重點(diǎn),由于官方的文檔和例子不太詳細(xì),不熟悉node的同學(xué)折騰起來(lái)會(huì)比較累,所以本文提供了一個(gè)比較完整的例子。具

7、體代碼里面注釋已經(jīng)寫(xiě)的比較清楚了。varsession=require('koa-generic-session');varredisStore=require('koa-redis');varkoa=require('koa');varredis=require('redis');//注意:client默認(rèn)是異步callback方式調(diào)用;//store.client是經(jīng)過(guò)了co-redis包裝,返回Promise,在koa里面用yield異步編程比較方便varclient=redis.creawww

8、.shanxiwang.netteClient(6379,"172.19.65.240");varapp=koa();app.keys=['keys','keykeys'];//varoption={host:"172.19.65.240",db:1};varoptions={client:client,db:1};varstore=redisStore(options);app.use(session({store:store}));app.use(function*(){switch(this.p

9、ath){case'/get':get.call(this);break;case'/testKV'://保存keyvalueif(this.query.adminId){yieldstore.client.set("test1",this.query.adminId);}//同步讀取keyvaluethis.body=yieldstore.client.get("test1");break;case'/testHM'://操作hashmapvarresult=yieldstore.client.hm

10、set("hosts","mjr","123","another","23","home","1234");console.log(result);varobj=yieldstore.client.hgetall("hosts")console.dir(obj);www.sm136.com//獲取hashmapkey的值this.body=yieldstore.client.hget("hosts","home");//保存hashmap,使用默認(rèn)的ca

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶(hù)上傳,版權(quán)歸屬用戶(hù),天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶(hù)請(qǐng)聯(lián)系客服處理。