Join webdis服务器端连接
首先,请原谅,如果我误解了一些概念,这对我来说有点新鲜。我必须从webdis服务器检索大量对象。目前的做法是:Join webdis服务器端连接,join,redis,Join,Redis,首先,请原谅,如果我误解了一些概念,这对我来说有点新鲜。我必须从webdis服务器检索大量对象。目前的做法是: 获取所有对象ID(serverUrl/ZRANGE/objects\u index/-X/-1) 对于每个对象,获取属性(serverUrl/get/attributeY\u objectdx) 因此,如果我有X个具有Y属性的对象,我必须执行X*Y+1 REST调用来获取所有he数据,这看起来非常低效 据我所知,是执行连接的命令,但WebDISRESTAPI不支持该命令(请参阅第页的I
jsonSocket.send(JSON.stringify(["MULTI", "EXEC", "GET", "etc..."]));
首先,不是每个属性有一个键,而是应该考虑使用哈希对象,这样每个对象都有一个键,它与多个属性关联。好处是可以使用HGETALL命令一次检索给定对象的所有属性。您没有X*Y+1呼叫,只有X+1
而不是:SET user:1:name Didier
SET user:1:age 41
SET user:1:country FR
你可以:
HMSET user:1 name Didier age 41 country FR
然后,webdis支持HTTP 1.1和websocket管道,Redis服务器支持使用自己的协议进行管道。因此,应该可以向webdis发送多个命令,等待结果(返回的顺序相同),同时只需支付一次往返费用
例如,webdis页面上提供的websocket示例实际上执行一次往返以执行两个命令:
var jsonSocket = new WebSocket("ws://127.0.0.1:7379/.json");
jsonSocket.onopen = function() {
console.log("JSON socket connected!");
jsonSocket.send(JSON.stringify(["SET", "hello", "world"]));
jsonSocket.send(JSON.stringify(["GET", "hello"]));
};
jsonSocket.onmessage = function(messageEvent) {
console.log("JSON received:", messageEvent.data);
};
您可以执行类似的操作,并聚合几个HGETALL命令,以按批处理n个对象检索数据
请注意,对于ReDIS本身(即没有WebDIS),我可能会推荐相同的策略(流水线HGETALL命令)。
首先,不是每个属性有一个键,而是应该考虑使用哈希对象,这样每个对象得到一个键,与几个属性相关。好处是可以使用HGETALL命令一次检索给定对象的所有属性。您没有X*Y+1呼叫,只有X+1
而不是:SET user:1:name Didier
SET user:1:age 41
SET user:1:country FR
你可以:
HMSET user:1 name Didier age 41 country FR
然后,webdis支持HTTP 1.1和websocket管道,Redis服务器支持使用自己的协议进行管道。因此,应该可以向webdis发送多个命令,等待结果(返回的顺序相同),同时只需支付一次往返费用
例如,webdis页面上提供的websocket示例实际上执行一次往返以执行两个命令:
var jsonSocket = new WebSocket("ws://127.0.0.1:7379/.json");
jsonSocket.onopen = function() {
console.log("JSON socket connected!");
jsonSocket.send(JSON.stringify(["SET", "hello", "world"]));
jsonSocket.send(JSON.stringify(["GET", "hello"]));
};
jsonSocket.onmessage = function(messageEvent) {
console.log("JSON received:", messageEvent.data);
};
您可以执行类似的操作,并聚合几个HGETALL命令,以按批处理n个对象检索数据
请注意,对于Redis本身(即没有webdis),我可能会推荐相同的策略(管道化HGETALL命令)。数据的组织方式似乎是为了优化写入速度。我还试图摆弄websocket,但它们的具体实现与chrome不兼容。是的,它只支持Hixie-76,因此它与chrome从版本6到版本14兼容。似乎数据是以这种方式组织的,以优化写入速度。我还试着摆弄websocket,但它们的具体实现与chrome不兼容。是的,它只支持Hixie-76,所以它与chrome 6到14版兼容。