成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Redis新手指南:在node中使用redis

pcChao / 3064人閱讀

摘要:簡介是一個(gè)高性能的數(shù)據(jù)庫,把數(shù)據(jù)存在內(nèi)存中,并在磁盤中記錄數(shù)據(jù)的變化。因?yàn)閷?shù)據(jù)存在內(nèi)存中,所以數(shù)據(jù)操作非??臁T谥惺褂檬紫?,安裝驅(qū)動(dòng)支持多種數(shù)據(jù)類型,常用的有鍵值對,哈希表,鏈表,集合等。鍵值對運(yùn)行,結(jié)果如下哈希表哈希表有點(diǎn)類似中的。

Redis簡介

Redis是一個(gè)高性能的key-value數(shù)據(jù)庫,Redis把數(shù)據(jù)存在內(nèi)存中,并在磁盤中記錄數(shù)據(jù)的變化。因?yàn)閷?shù)據(jù)存在內(nèi)存中,所以數(shù)據(jù)操作非???。

安裝

以windows環(huán)境為例,先下載windows版本的redis,地址如下:3.2.100
下載完成后,解壓,我這里解壓到D:redis目錄下

開啟服務(wù)

打開一個(gè) cmd 窗口,進(jìn)入目錄到 D:redis,運(yùn)行 redis-server.exe redis.windows.conf。

出現(xiàn)上面界面,則redis已經(jīng)在本機(jī)端口6379啟動(dòng)了服務(wù),那么接下來,便可以用客戶端連接到redis服務(wù)端了。

在node中使用redis

首先,安裝驅(qū)動(dòng):npm install redis

redis支持多種數(shù)據(jù)類型,常用的有鍵/值對,哈希表,鏈表,集合等。

普通數(shù)據(jù)

我們先來看看如何存儲(chǔ)和獲取鍵/值對。

var redis = require("redis")

var client = redis.createClient(6379, "127.0.0.1")
client.on("error", function (err) {
  console.log("Error " + err);
});

// 1 鍵值對
client.set("color", "red", redis.print);
client.get("color", function(err, value) {
  if (err) throw err;
  console.log("Got: " + value)
  client.quit();
})

運(yùn)行,結(jié)果如下

哈希表

哈希表有點(diǎn)類似ES6中的Map。

client.hmset("kitty", {
  "age": "2-year-old",
  "sex": "male"
}, redis.print);
client.hget("kitty", "age", function(err, value) {
  if (err) throw err;
  console.log("kitty is " + value);
});

client.hkeys("kitty", function(err, keys) {
  if (err) throw err;
  keys.forEach(function(key, i) {
    console.log(key, i);
  });
  client.quit();
});

運(yùn)行,結(jié)果如下:

鏈表

Redis鏈表類似JS數(shù)組,lpush向鏈表中添加值,lrange獲取參數(shù)start和end范圍內(nèi)的鏈表元素, 參數(shù)end為-1,表明到鏈表中最后一個(gè)元素。
注意:隨著鏈表長度的增長,數(shù)據(jù)獲取也會(huì)逐漸變慢(大O表示法中的O(n))

client.lpush("tasks", "Paint the house red.", redis.print);
client.lpush("tasks", "Paint the house green.", redis.print);
client.lrange("tasks", 0, -1, function(err, items) {
  if (err) throw err;
  items.forEach(function(item, i) {
    console.log(" " + item);
  });
  client.quit();
});

運(yùn)行,結(jié)果如下:

集合

類似JS中的Set,集合中的元素必須是唯一的,其性能: 大O表示法中的O(1)

client.sadd("ip", "192.168.3.7", redis.print);
client.sadd("ip", "192.168.3.7", redis.print);
client.sadd("ip", "192.168.3.9", redis.print);
client.smembers("ip", function(err, members) {
  if (err) throw err;
  console.log(members);
  client.quit();
});

運(yùn)行,結(jié)果如下:

信道

Redis超越了數(shù)據(jù)存儲(chǔ)的傳統(tǒng)職責(zé),它還提供了信道,信道是數(shù)據(jù)傳遞機(jī)制,提供了發(fā)布/預(yù)定功能。

var redis = require("redis")
var clientA = redis.createClient(6379, "127.0.0.1")
var clientB = redis.createClient(6379, "127.0.0.1")

clientA.on("message", function(channel, message) {
  console.log("Client A got message from channel %s: %s", channel, message);
});
clientA.on("subscribe", function(channel, count) {
  clientB.publish("main_chat_room", "Hello world!");
});
clientA.subscribe("main_chat_room");

上面代碼中,clientA訂閱了main_chat_room,這時(shí)clientA捕獲到訂閱事件,執(zhí)行回調(diào)函數(shù),clientB向main_chat_room發(fā)送了一條信息Hello world!
clientA接受到信息后,在控制臺(tái)打印出了相關(guān)信息。
運(yùn)行,結(jié)果如下:

小結(jié)

本篇只是對Redis進(jìn)行了最基本介紹,想要獲得更多信息,可以參考:
redis documentation
node_redis
Redis實(shí)戰(zhàn)
Redis開發(fā)與運(yùn)維

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/96574.html

相關(guān)文章

  • 代碼級操作指南 | 如何Docker Swarm運(yùn)行服務(wù)

    摘要:節(jié)點(diǎn)管理器將利用該聲明該集群服務(wù)。在本示例當(dāng)中,我們將部署一項(xiàng)服務(wù)。此標(biāo)記用于告知公布端口作為該服務(wù)的可用端口。將此稱為入口負(fù)載均衡。當(dāng)外部系統(tǒng)調(diào)用某項(xiàng)服務(wù)時(shí),接收節(jié)點(diǎn)會(huì)接受流量并利用提供的內(nèi)部服務(wù)對其進(jìn)行負(fù)載均衡。 最新版本Docker Engine v1.12中,包含了多項(xiàng)與Docker Swarm緊密相關(guān)的功能變更。在今天的文章中,數(shù)人云將和大家探討如何利用Docker的Swar...

    Winer 評論0 收藏0
  • AI開發(fā)書籍分享

    摘要:編程書籍的整理和收集最近一直在學(xué)習(xí)深度學(xué)習(xí)和機(jī)器學(xué)習(xí)的東西,發(fā)現(xiàn)深入地去學(xué)習(xí)就需要不斷的去提高自己算法和高數(shù)的能力然后也找了很多的書和文章,隨著不斷的學(xué)習(xí),也整理了下自己的學(xué)習(xí)筆記準(zhǔn)備分享出來給大家后續(xù)的文章和總結(jié)會(huì)繼續(xù)分享,先分享一部分的 編程書籍的整理和收集 最近一直在學(xué)習(xí)deep learning深度學(xué)習(xí)和機(jī)器學(xué)習(xí)的東西,發(fā)現(xiàn)深入地去學(xué)習(xí)就需要不斷的去提高自己算法和高數(shù)的能力然后...

    huayeluoliuhen 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<