2016-08-01 55 views
0

請有沒有人用過NodeJS + Redis + MySQL 的目標是有取的NodeJS從Redis的數據,只有達到MySQL的,如果沒有找到數據,也更新MySQL回來的數據。的NodeJS,Redis的和MySQL

然後,我怎麼可以運行Redis的關係請求,知道它的一個NoSQLin-memory DB

我已閱讀,Redis的比Memcached更好,這似乎是更快,所以我想嘗試一下,但似乎所有的教程中,我可以躺在我的手上只是基於PHP

目前我使用的NodeJS + MySQL的如下(舉例):

var d = new Date(); 
var date = d.getFullYear() + '-' + paddnum(Math.round(d.getMonth() + 1)) + '-' + paddnum(d.getDate()) + ' ' + paddnum(d.getHours()) + ':' + paddnum(d.getMinutes()) + ':' + paddnum(d.getSeconds()); 

var query = `INSERT INTO comments (COMMENT, POSTID) 
         VALUES ('{"author":"` + data.userid + `", "comment": "` + data.comment + `", "time":"` + date + `"}', ` + data.postid + `) 
         ON DUPLICATE KEY UPDATE 
          COMMENT = CONCAT(COMMENT, ',{"author":"` + data.userid + `", "comment": "` + data.comment + `", "time":"` + date + `"}'), 
          POSTID = ` + data.postid; 
//console.log(query); 
connection.query(query, 
    function(err, results) { 
     if (err) { 
      return err; 
     } 
     return results; 
    } 
); 

回答

1

林不知道你真正需要的,但根據需要編寫代碼和模塊,可以的NodeJS代碼和MySQL數據庫之間的合作問題。 您可以使用此模塊Redis的操作 混帳://github.com/NodeRedis/node_redis.git

現在,所有你需要的是連接到Redis的,在然後在用戶請求覈查redis-填充數據>如果找不到數據庫查詢返回數據。或相反亦然。

希望這會有所幫助。

+0

感謝似乎是前進的方式,它的非常好,但我現在感到困惑的是,如果我想用redis做關係查詢(多重連接),再次感謝 – AcefxLabs

+0

嗯......據我所知redis doent有JOIN的功能。它基本上是pub/sub系統。所以它只是存儲內部值並將其還原。但根據我的經驗,用數據保存一些大對象並將其還原是非常好的。例如,您可以將MySQL結果保存爲redis,稍後多次從redis中獲取此結果。這種方法可以節省很多時間。希望這可以幫助。 –

+1

非常感謝,多次挖掘後,我意識到數據需要RELATIONS所有我必須做的我在MYSQL中創建VIEW並將其數據保存在REDIS中,因此來自REDIS的請求中的數據將只是VIEWS而不是關係 – AcefxLabs