当前位置: 首页 > 知识库问答 >
问题:

redis 2.8.7 linux环境配置的哨兵问题,如何使其自动启动,他们应该订阅什么?

公良琛
2023-03-14

目前,我们正在尝试使用Redis2.8.7作为缓存存储(从。NET web应用程序中使用Booksile客户机)。这似乎是一个非常有趣和令人兴奋的任务,目前,redis的文档非常好,但由于缺乏真正的实践经验,我确实有几个问题,关于如何正确地完成预期的配置。

我将下一篇文章作为主要配置来源:

    null

最初的想法/假设-是有1个redis主和2个从实例运行与linux Ubuntu。为了提供实例的高可用性,我决定使用Sentinel。因此,目前我的预期配置如下所示:

  1. 主实例:VM1(linux,Ubuntu),端口:6379(linux重新启动时自动启动)
  2. slave1:VM2(linux,ubuntu),端口:6380(linux重新启动时自动启动):slaveOf MasterID 6379
  3. slave2:VM3(linux,ubuntu),端口:6379(linux重新启动时自动启动):slaveOf MasterIP 6379

在VMs启动后,我可以看到我已经成功地连接了2个从服务器,并与Master同步:来自Master的Trace示例:

[1120] 25 Mar 14:11:18.629 - 1 clients connected (0 slaves), 793352 bytes in use
[1120] 25 Mar 14:11:18.634 * Slave asks for synchronization
[1120] 25 Mar 14:11:18.634 * Full resync requested by slave.
[1120] 25 Mar 14:11:18.634 * Starting BGSAVE for SYNC
[1120] 25 Mar 14:11:18.634 * Background saving started by pid 1227
[1227] 25 Mar 14:11:18.810 * DB saved on disk
[1227] 25 Mar 14:11:18.810 * RDB: 0 MB of memory used by copy-on-write
[1120] 25 Mar 14:11:18.836 * Background saving terminated with success
[1120] 25 Mar 14:11:18.837 * Synchronization with slave succeeded
[1120] 25 Mar 14:11:23.829 - DB 0: 2 keys (0 volatile) in 4 slots HT.
[1120] 25 Mar 14:11:23.829 - DB 2: 4 keys (0 volatile) in 4 slots HT.
[1120] 25 Mar 14:11:23.829 - 0 clients connected (1 slaves), 1841992 bytes in use
[1120] 25 Mar 14:11:29.011 - DB 0: 2 keys (0 volatile) in 4 slots HT.
[1120] 25 Mar 14:11:29.011 - DB 2: 4 keys (0 volatile) in 4 slots HT.
[1120] 25 Mar 14:11:29.011 - 0 clients connected (1 slaves), 1841992 bytes in use
[1120] 25 Mar 14:11:29.826 - Accepted 168.62.36.189:1024
[1120] 25 Mar 14:11:29.828 * Slave asks for synchronization
[1120] 25 Mar 14:11:29.828 * Full resync requested by slave.
[1120] 25 Mar 14:11:29.828 * Starting BGSAVE for SYNC
[1120] 25 Mar 14:11:29.828 * Background saving started by pid 1321
[1321] 25 Mar 14:11:29.871 * DB saved on disk
[1321] 25 Mar 14:11:29.871 * RDB: 0 MB of memory used by copy-on-write
[1120] 25 Mar 14:11:29.943 * Background saving terminated with success
[1120] 25 Mar 14:11:29.946 * Synchronization with slave succeeded
[1120] 25 Mar 14:11:34.195 - DB 0: 2 keys (0 volatile) in 4 slots HT.
[1120] 25 Mar 14:11:34.195 - DB 2: 4 keys (0 volatile) in 4 slots HT.
[1120] 25 Mar 14:11:34.195 - 0 clients connected (2 slaves), 1862920 bytes in use

>

  • 我将sentinel.conf从最初的redis稳定包复制到3个VM runnung redis(1个主程序和两个从程序)
  • 在每个配置中,我做了下一个修改:

    哨兵监视器mymaster MasterPublicIP 6379 2

    在每个VM上,使用下一个命令行启动sentinel:

    [1743] 25 Mar 16:35:46.450 # Sentinel runid is 05380d689af9cca1e826ce9c85c2d68c65780878
    [1743] 25 Mar 16:35:46.450 # +monitor master mymaster MasterIP 6379 quorum 2
    [1743] 25 Mar 16:36:11.578 * -dup-sentinel master mymaster MasterIP 6379 #duplicate of     10.119.112.41:26379 or 83666bdd03fd064bcf2ec41ec2134d4e1e239842
    [1743] 25 Mar 16:36:11.578 * +sentinel sentinel 10.119.112.41:26379 10.119.112.41 26379 @ mymaster 168.62.41.1 6379
    [1743] 25 Mar 16:36:16.468 # +sdown sentinel 10.175.220.134:26379 10.175.220.134 26379 @ mymaster 168.62.41.1 6379
    [1743] 25 Mar 16:36:40.876 * -dup-sentinel master mymaster MasterIP 6379 #duplicate of 10.175.220.134:26379 or fe9edeb321e04070c6ac6e28f52c05317a593ffd
    [1743] 25 Mar 16:36:40.876 * +sentinel sentinel 10.175.220.134:26379 10.175.220.134 26379 @ mymaster 168.62.41.1 6379
    [1743] 25 Mar 16:37:10.962 # +sdown sentinel 10.175.220.134:26379 10.175.220.134 26379 @ mymaster 168.62.41.1 6379
    
    1. 为什么我在这里看到-dup-sentinel master mymaster配置...是因为我为同一个master实例添加了3个哨兵(也许我需要为redis的每个实例注册1个哨兵--所以1个哨兵将映射到master和2个其他哨兵--映射到2个奴隶)?
    2. 如何以redis服务器启动的方式启动哨兵(即使VM重新启动也会自动启动)?-是否需要执行相同的操作并将它们注册为普通的redis-server实例?
    3. 可以将sentinel实例与redis-server托管在同一个VM中吗?

    之后,我启动了新的putty连接,并启动了redis-cli来使用sentinel APIs,但收到了下面命令的下一个响应:

    127.0.0.1:6379> SENTINEL masters
    
    (error) ERR unknown command 'SENTINEL'
    

    我想我做了些蠢事...:(我做错了什么?如何从终端连接测试哨兵API?

  • 共有1个答案

    闽朝
    2023-03-14

    我想“哨兵大师”应该在Redis sentinel上运行

    Redis-CLI-P 26379(默认哨兵端口)

    然后发行

    127.0.0.1:26379>哨兵大师

    1)“名称”2)“MyMaster”3)“IP”4)“127.0.0.1”5)“端口”6)“6379”...

    要自动启动哨兵,即使重新启动VM

    首先设置daemonize yes到sentinel.conf

    剩下的就像你为redis服务器做的一样。

     类似资料:
    • 每一个哨兵都可以连接到我的主人,并可以看到奴隶。它们能够独立地检测主从是否倒下。问题是哨兵们无法探测到对方。 我已经验证了每个哨兵都像预期的那样向通道发布消息,但似乎没有一个哨兵真正从其他哨兵通道接收消息。 我怎么让哨兵们见面?

    • redis大师可以通过sentinel发现,使用: 现在要将数据写入主节点:

    • 但是,当我通过redis-cli-p26379连接并输入“config get maxclients”时,它告诉我没有这样的命令。但是,如果我连接到实际的Redis实例,它就可以工作。 如何获取redis sentinel的maxclients值?

    • 我有一个名为“abc”的订阅,其中存储表有4列,用于开发环境。对于测试和生产环境,我们在azure portal中有不同的订阅。我的情况是,我不想在测试和生产环境中再次手动创建存储表。我希望将此表模式作为开发环境中的模板,并通过自动传递订阅密钥、资源组名称、存储帐户访问密钥,在测试和生产环境中创建它。 我如何才能实现它。

    • 本文向大家介绍Tomcat启动分析(我们为什么要配置CATALINA_HOME环境变量),包括了Tomcat启动分析(我们为什么要配置CATALINA_HOME环境变量)的使用技巧和注意事项,需要的朋友参考一下     用文本编辑工具打开用于启动Tomcat的批处理文件startup.bat,仔细阅读。在这个文件中,首先判断CATALINA_HOME环境变量是否为空,如果为空,就将当前目录设为CA

    • 我正试图使用两个redis节点设置哨兵。请找到内联的conf文件。 端口16371 dir“C:\程序文件\redis\16371\” loglevel通知 日志文件“C:\Program Files\redis\logs\16371.log” 哨兵监视器示例127.0.0.1 6371 *致命配置文件错误*读取配置文件,在第5行 有人能帮我把这个修好吗。蒂亚:)