我刚刚使用我的Ubuntu 10.10服务器上http://redis.io/topics/quickstart上的快速入门指南中的说明成功安装了Redis .我正在以dameon运行服务(因此可以通过init.d运行)
该服务器是具有内部和外部IP的Rackspace Cluster的一部分.主机在端口6379上运行(Redis的标准)
我在iptables中添加了一行以允许来自端口6379的传入连接,如下所示:
ACCEPT tcp -- anywhere anywhere tcp dpt:6379
Run Code Online (Sandbox Code Playgroud)
在我在另一台服务器上的PHP代码中,我正在尝试连接到新的Redis服务器:
$this->load->helper("iredis");
$hostname = "IP ADDRESS HERE";
$redis = new iRedis(array('hostname' => $hostname, 'port' => 6379));
Run Code Online (Sandbox Code Playgroud)
一旦我这样做 - 我总是拒绝连接.在我的redis.conf文件中,我将本地绑定命令注释掉,因此它应该监听的不仅仅是本地主机IP.我可以连接到本地计算机上的数据库,而不是在另一台服务器上.我已经尝试过外部和内部IP而没有运气.
有关使此工作的任何建议?
我在我的服务器上运行3个redis-server实例,实例有不同的配置文件和db文件.例如:redis1将db位置设置为/ var/lib/redis_1,redis2将db位置设置为/ var/lib/redis_2.我有twemproxy配置:
alpha: listen: 0.0.0.0:9999 redis: true hash: fnv1a_64 distribution: ketama auto_eject_hosts: true server_retry_timeout: 2000 server_failure_limit: 2 servers: - 127.0.0.1:6381:1 - 127.0.0.1:6382:1 - 127.0.0.1:6383:1
我启动了3个redis实例,并将数据"name"分别设置为redis-cli的不同值.例如:我将名称设置为"6381"到第一个服务器,将"6382"设置为第二个服务器.我打开db文件dump.rdb,看到3个数据值,然后启动twemproxy.
当我用redis-cli连接twemproxy并读取"name"键时,它总是返回"6382".如果我使用不同的客户端连接到它,值仍然是相同的.如果我直接在Redis instabces中更改值,或者对twemproxy实例执行任何其他操作,我发现更改只更新到第二个db文件/var/lib/redis_2/dump.rdb.
为什么twemproxy不能与3个redis-server实例一起使用?我的配置有什么问题吗?