虽然我知道如何在两个不同的服务器上configuration和运行Redis主服务器和从服务器,但是如果主Redis服务器出现故障,我的Web服务器是否能够连接到从服务器redis服务器? 如果情况不是这样,我可以知道我该怎么做到这一点? 谢谢 巴拉吉
我试图在3个节点上设置Redis / Sentinel设置,每个节点都运行一个redis实例和一个sentinel实例。 但是,当主机停机时,其余的哨兵就坐在那里什么都不做,然后决定把每个奴隶都设为自己的奴隶,这当然是接近可能的更糟糕的行动。 安装细节如下: 节点是10.66.5.5 。 默认情况下, .3节点是主节点(在安装时),其他所有节点都在/etc/redis/redis.conf文件中具有相应的条目: slaveof 10.66.5.3 6379 。 其余的redis.conf是未修改的。 哨兵的起始configuration如下: daemonize no sentinel monitor myapp 10.66.5.3 6379 2 sentinel down-after-milliseconds myapp 5000 sentinel failover-timeout myapp 15000 sentinel parallel-syncs myapp 1 注意:我让upstart处理服务,这就是为什么守护进程标志closures。 configuration文件可以通过各自的守护进程写入,所以标记可以(并且)更新其configuration文件,例如,没有问题。 只要所有节点都活着,安装程序就可以正常工作。 在主设备上注册一些东西会传播到从设备等等。 现在,当我select当时closuresRedis主服务器( shutdown -h now ),并留出一些时间来达到法定人数时,结果是: 节点.4被设置为他的IP地址( 10.66.5.4 ) .5节点被设置为127.0.1.1的从127.0.1.1 哨兵做了很多来回select的东西,但显然在他们中的一个rest之后,彼此之间没有正确的沟通。 他们也不断发现自己是失望的和其他荒谬的事情。 1744:X 12 May 17:02:32.453 # […]
我不知道什么关于Redis,现在我必须在它填满之前释放磁盘空间。 我在/ var / lib / redis /中看到一些旧的redis文件,文件名就像 dump1252.rdb dump1254.rdb dump1256.rdb dump1253.rdb dump1255.rdb 温度,1982.rdb temp-10259.rdb temp-1586.rdb 温度,1248.rdb 删除旧的是否安全?
尝试从Redis云中的同一版本主服务器进行同步时出现以下错误: # Server started, Redis version 2.8.12 * The server is now ready to accept connections on port 6379 * Connecting to MASTER pub-redis-99999.us-east-1-3.1.ec2.garantiadata.com:99999 * MASTER <-> SLAVE sync started * Non blocking connect for SYNC fired the event. * Master replied to PING, replication can continue… * (Non critical) Master does not understand REPLCONF […]
我正在使用Redis一段时间,现在我们要迁移到一个容错,高可用性和负载平衡的冗余群集。 我主要使用Redis的一些PHP Web应用程序,它存储了一些进程状态信息(我正在使用PHPRedis),我也想用它来在负载平衡的集群中进行PHP会话存储。 我已经有了一个用于Nginx和MySQL的负载均衡(基于pfSense)。 我看到Redis 3存在Redis Cluster,但是我也读了一些关于它尚未准备好生产的评论,其他人则说Redis不能做一个完整的主/主集群configuration。 你有什么build议? 尝试Redis集群 移动到另一个键=值引擎(CouchDB?Memcached?其他?) 不要介意负载平衡,并且每次只使用集群的一个节点,并且手动故障切换,因为我不使用持久性 其他想法? 非常感谢您的帮助!
我需要为redis实例运行start-stop-daemon ,并且我希望它发送一个SIGTERM ,如果redis实例不退出,我希望它强制退出。 start-stop-daemonconfiguration表示可以使用–retry选项,但是我想不出办法做到这一点,这是我的当前命令: /sbin/start-stop-daemon –stop –retry forever/TERM –quiet –oknodo –pidfile /var/run/redis/redis.pid –exec /usr/bin/redis-server 任何提示我将如何能够做到这一点?
对于Memcache和Redis我有点新意,我试图理解两者之间的区别,以及每个实际是什么。 正如我已经向我解释的那样,Memcache是一个数据库caching解决scheme。 来自频繁运行的查询的数据被caching以在稍后的时间点被重新使用以加快响应时间。 这是一个准确的描述? Redis呢? 这是否以类似的方式工作? 换句话说,它是否caching从后端数据库收到的数据? 我一直在读Redis是一个关键的价值存储解决scheme,对我来说听起来更像是数据库服务器和数据库caching解决scheme的替代品。 任何帮助了解每个是什么,以及有什么区别将不胜感激。 感谢Brad
我已经在Windows 7主机上的VirtualBox上安装了Ubuntu映像。 在Ubuntu客户端上,我安装了默认情况下在端口6379(TCP)上运行的Redis。 我已经使用SSH的VirtualBox GUI设置了端口转发,并validation了通过连接到localhost:2222,连接被正确地转发到端口22,SSH工作。 但是,当我完成了端口6379相同的设置,当连接端口30000,设置转发到6379时,我得到一个“远程login:无法连接到远程主机:连接被拒绝”错误。 为了validationRedis是否正确运行,我validation了我可以使用端口6379(telnet localhost 6379)在本地连接(通过访客计算机上的命令行)到Redis,并成功运行命令。 为什么会发生这种情况,我有点不知所措。 任何input都会很好。
我们目前遇到了很多Redis错误信息 无法连接:连接时读取错误,尝试下一台服务器 我们使用PHP Redis在FreeBSD上运行Redis,而且我们很难在Ubuntu上重现错误,所以这可能是一个暗示。 在github上这个话题有一个长期的问题 。 基本上我们通过调用phpredis中的connect(host, port, timeout)来从操作系统中获得一个套接字,但是当我们做了一个select(db_index)之后,我们会得到一个exception。 难道持续存在问题吗? 我假设连接在后台不做任何事情,并select尝试访问连接,这实际上是closures的。 我们不会遇到超时。 我们尝试调整TIME_WAIT没有成功。 关于问题可能来自哪里的任何其他想法? 跟踪这个问题的最好方法是什么? dtrace也许? 更新 我们正在研究我们的BGSAVE设置。 有趣的是,它花费了半秒多的时间来为定期将数据写入磁盘(持久化)的进程创build一个fork,并且redis在该时间段内无法响应connect()请求。
我试图让Redis允许EVAL( http://redis.io/commands/EVAL )发出HTTP请求。 两个模块:LuaCURL和Luasocket提供这个function。 Redis源代码有一个包含额外模块(如cjson)的目录http://download.redis.io/redis-stable/deps/lua/src/ ,我尝试添加luacurl.c,但是我收到错误后出错。 我已经设法编译启用os.execute – 通过编辑scripting.c – 它允许我运行curl命令,但这是一个不好的解决scheme。 如何在Redis的Lua中编译HTTP请求? 大概最简单的方法是做一个独立的luasocket.so文件,但我不知道该怎么做。