2012-07-11 20 views
1

我有一個8核心系統。我在這上面運行了7個Redis實例(這樣幾乎所有的內核都被使用了)。我知道我可以使用Lua腳本(在服務器上執行客戶端處理)與Redis實例進行交互。但它只有一個Lua腳本與一個Redis實例進行交互。Lua腳本與多個redis實例進行交互(存儲/讀取)

我可以製作一個Lua腳本來與節點上的所有redis實例進行交互(存儲/讀取)嗎?

+0

否。不帶服務器端Lua腳本。儘管如此,您仍然可以通過客戶端腳本來完成。 – 2012-07-11 08:05:37

+0

您仍然可以在服務器計算機上運行Redis客戶端。它可以是一個Lua腳本。但是你不能在Redis實例本身中運行它。 – 2012-07-11 08:38:03

+0

我想在服務器上進行處理,因爲這樣我可以將更少的數據發送到客戶端(某種數據過濾)。假設我在8核心機器上使用單個redis實例,是否可以以多線程形式執行lua腳本(在redis服務器上進行客戶端處理),即在Lua腳本內創建多個線程並執行處理。我想這種方式多線程將使用所有內核,但他們所做的所有redis調用都將被序列化(因爲redis是單線程的)。但是讀/取記錄的後處理可以並行完成。 – sunillp 2012-07-11 08:42:21

回答

1

在Redis中是不可能的。但是你可以在Tarantool中實現,幸運的是,它具有與服務器端腳本相同的lua語言,所以你不應該在遷移現有代碼時遇到問題。 Tarantool與Redis非常相似,但具有一些獨特的功能,例如它支持從lua腳本到另一個實例(包括本地實例)的rpc調用。我還沒有發現另一個具有這種功能的NoSQL內存解決方案。

+0

這很有趣! [shard doc](https://github.com/tarantool/shard)是否是啓動Tarantool Lua腳本小例子的正確地方,例如從多個分片中選擇數據並對它們做些什麼?還是有代碼示例要看? – Dom 2017-01-18 14:32:20

+0

您可以從此開始。還有一個開發人員正在幫助社區的渠道。你可以通過這個鏈接進入:https://telegram.me/tarantool – 2017-01-19 16:23:56

相關問題