草庐IT

php - Redis哨兵实现

我们有一个设置:2个PHP服务器2台redis服务器作为主/从运行1日志服务器,存储elastcisearch中的各种日志我们想为redis服务器实现自动故障转移,现在在php服务器中硬编码redismaster地址。并且在日志服务器中,它有一个logstash实例,从主服务器输入redis也在logstash配置中进行了硬编码。我们在两台redis服务器上都安装了redissentinel,它运行良好。但问题是如何掌握php和logstash,否则这不是正确的方法。对于php,我找到了这个客户端包装器https://github.com/Sparkcentral/PSRedis但是还

Redis 哨兵不会故障转移我的主人

我正在尝试设置一个简单的redis-sentinel,并将其配置为将主机故障转移到它的一个从机。我设置了4个虚拟机(使用virtualbox),每个虚拟机都安装了Redis。我有一台主机和两个奴隶。最后一台机器是哨兵。master和slaves有一个默认配置,除了我将绑定(bind)地址更改为bind0.0.0.0,而奴隶有slaveof6379行。在哨兵中,我按照基本教程进行了如下设置:sentinelmonitormymaster63792sentineldown-after-millisecondsmymaster5000sentinelfailover-timeoutmymas

ssl - 使用 TLS 的 Redis 哨兵

Redis4.x是否兼容使用Sentinels运行TLS?我发现一些线程提到对TLS的支持将被添加到3.2,但没有任何确认。 最佳答案 不,一般的Redis,特别是Sentinel还不提供原生TLS(从v4.0.8开始,包括v4.0.8)。通过不同程度的努力和成功,您可以自己实现安全措施。 关于ssl-使用TLS的Redis哨兵,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/48

java - Redisson + redis 哨兵。如何处理故障转移并写入redis?

我刚刚编辑了我之前的问题,并提供了更多详细信息(希望有人能够提供帮助)。我有一个包含1个主服务器和2个从服务器的Redis集群。所有3个节点都由Sentinel管理。故障转移工作正常,当新的主控被选出时,我可以在新的主控上写(从命令行)。现在,我正在尝试使用Redisson编写一个小的Java程序,理想情况下应该将记录写入redis,并能够处理故障转移(据我所知它应该这样做)。到目前为止,这是我的代码。importorg.redisson.Redisson;importorg.redisson.RedissonNode;importorg.redisson.api.*;importor

docker - 连接到在 Docker 容器中以哨兵模式运行的 Redis 主节点时出现问题

我在docker容器中运行redis,我正在使用redissentinel模式。我已经设置了以下配置-3redissentinelsnodes1redismasternode2redisslavenodes我在我的本地机器上运行所有这些。所以总共有6个docker容器通过docker-compose以桥接网络模式运行。所有容器都有到外部的端口映射。所有容器都可以相互访问,因为它们位于docker-composeup运行期间创建的同一个桥接docker网络中。我已经使用Redisson库创建了一个Java客户端来访问redis。配置客户端使用redis-sentinel模式如下-Conf

java - jedis哨兵池中多个jedis连接的使用

我正在springweb应用程序中实现jedis。我需要知道我应该从池资源中获取一次绝地武士并每次在Controller中使用它,还是应该在每次调用Controller时从池中获取新的绝地武士并再次关闭它。当我浏览文档时,我们不应该在多线程环境中使用相同的jedis连接,所以问题出现了,我们应该在Controller中获取jedis连接形式的资源池,或者我们应该使用在spring服务中创建的配置在应用上下文中SpringControllerjedis服务中的代码intdatabase=0;JedisPoolConfigpoolConfig=newJedisPoolConfig();//

Redis 哨兵 : last node doesn't become master

我正在尝试在一个3节点的redis集群中设置一个自动故障转移系统。我在每个节点上都安装了redis-sentinel(就像这个人:http://www.symantec.com/connect/blogs/configuring-redis-high-availability)。只要我有两个或三个节点,一切都很好。问题是,只要只剩下一个节点并且它是一个从属节点,它就不会自动被选为主节点。法定人数设置为1,因此最后一个节点检测到master的odown但不能投票支持故障转移,因为没有多数。为了克服这个(令人惊讶的)问题,我写了一个小脚本,向其他节点询问它们的主人,如果他们不回答,我将当前

redis - 如何为 Redis 及其哨兵指定密码?

我们打算使用ServiceStack.RedisClient,但我无法弄清楚如何为哨兵和主人定义密码。我试过pwd@ipv4:port但没有结果。我们的代码是:varsentinelHosts=new[]{"node1:26379","node2:26379","node3:26379"};varsentinel=newRedisSentinel(sentinelHosts,"mymaster");varmanager=sentinel.Start();while(true){using(varclient=manager.GetClient()){try{Console.WriteL

Redis哨兵身份验证

我有3个运行着Redis和Sentinel的服务器。所有实例都在配置中requirepassXXXmasterauthXXX我可以使用redis-cli连接到redis服务器,但如果我尝试连接到哨兵,我将无法进行身份验证。root@ip-:/usr/lib/nagios/plugins#redis-cli-p26379127.0.0.1:26379>AUTHxxx(error)ERRunknowncommand'AUTH'127.0.0.1:26379>如果我使用相同的命令但使用redis端口,它就可以工作。谢谢最好的 最佳答案 您

redis - 1 Redis 哨兵与多个 Redis 哨兵?

我一直在阅读有关使用Redis哨兵进行故障转移的内容。我打算有1个master+1个slave,如果master宕机超过1分钟,就把slave变成master。我知道这在Sentinel中是100%可能的。但是,我看到文档提到使用多个Sentinels。让我们假设这是不可能的(即预算或技术限制)。我假设我可以有这个配置:服务器A中的1个哨兵服务器B的主人服务器C中的从属与1个相比,拥有多个哨兵有什么好处?我的应用程序一次只能连接到1个哨兵,即使有2个哨兵,如果一个哨兵在我的应用层中没有一些复杂的逻辑出现故障,我的应用也无法在其中任何一个之间旋转或切换。 最佳