redis配置信息 端口:6379 域名:node1.redis.com
app.js socket服务端: var server = require(‘http’).createServer(); var io = require(‘socket.io’)(server); var redis = require(“redis”), client = redis.createClient(6379, ‘node1.redis.com’); client.get(“missingkey”, function(err, reply) { console.log(reply); }); 多余代码省略… server.listen(3000);
/etc/hosts 信息如下: 127.0.0.1 node1.redis.com #192.168.163.131 node1.redis.com
1、启动app.js node app.js 2、不重启app.js服务,修改/etc/hosts配置信息如下 #127.0.0.1 node1.redis.com 192.168.163.131 node1.redis.com 此时redis已经切换到131,地址, 备注:127.0.0.1和192.168.163.131这两台的redis都没有关闭 3、那么此时问题来了。。。。。此时redis已经切换到131,但是读取的内容还是127.0.0.1这台服务的上数据,并不会去读取131上的数据!! 备注:最后分析出来应该是redis实例对象的问题,但没有想到的好的方案解决
不知问题描述是否足够清楚,不知道哪位高人知道具体,并且如何解决!!
顶顶呀,不要让此贴沉沦呀!兄弟们帮忙顶一下哈!
写个子进程watch hosts文件,文件更改时通知主进程重新创建redis实例
@dayuoba 这个方案也可以,万一hosts文件你没有权限监控了,,