为什么redis在java是同步缓存,而在nodejs是异步缓存?


在java下可以使用 :


 String value = redis.get(key);

是同步的

但在nodejs 下使用:

```javascript
var value ;
var isConnection = client.get(key,function(err,repy){
value = repy;
client.quit(); //调用了quit之后isConnection就是false了,这个get方法应该是返回连接状态吧?
});
````

java Redis node.js JavaScript

阿良良木火憐 11 years, 5 months ago

我看了一下node redis代码, client.get 直接返回的结果是 !client.shou_buffer 。而且对于异步操作的js,这个值肯定是它向redis发送请求之前就被返回了的。


 var returned = client.get(key,function(err,repy){
value = repy;
console.log(‘value is ’,value);
client.quit(); 
})
console.log(‘returned is ’,returned)

你可以看看哪个被先打印出来。
而且不要在返回数据之后就quit,因为你还要接着存取数据,下次难道还要用client手动连接上吗?这不是php。

找面包的小鸟 answered 11 years, 5 months ago

Your Answer