精华内容
下载资源
问答
  • redis集群命令

    2016-12-31 15:04:00
    查看集群状态:cluster info 检查集群:redis-trib.rb check ip:端口 查看集群信息:redis-trib.rb info ip:端口 来自为知笔记(Wiz) 转载于:https://www.cnblogs.com/mantian2020/p/6239294.html...

    查看集群节点信息:cluster nodes


    查看集群状态:cluster info
    检查集群:redis-trib.rb check ip:端口
    查看集群信息:redis-trib.rb info ip:端口





    转载于:https://www.cnblogs.com/mantian2020/p/6239294.html

    展开全文
  • 快速部署Redis集群

    2020-11-10 23:30:24
    一、Redis集群简介 Redis Cluster是一个无中心的结构,每个节点都保存数据和整个群集的状态。每个节点都会保存其他节点的信息,知道其他节点所负责的槽,并且会与其他节点定时发送心跳信息,能够及时感知群集中异常...

    一、Redis集群简介

    Redis Cluster是一个无中心的结构,每个节点都保存数据和整个群集的状态。每个节点都会保存其他节点的信息,知道其他节点所负责的槽,并且会与其他节点定时发送心跳信息,能够及时感知群集中异常的节点。
    Redis没有统一的路口,当客户端向群集中任一节点发送与数据库键有关的命令时,接受命令的节点会计算出命令要处理的数据库键属于哪个槽,并检查这个槽是否指派给了自己。如果键所在的槽正好指派给了当前节点,那么节点直接执行这个命令;如果键所在的槽并没有指派给当前节点,那么节点会向客户端返回一个MOVED错误,指引客户端转向(redirect)正确的节点,并再次发送之前想要执行的命令。

    二、Redis集群概述

    2.1、Redis集群介绍

    1、Redis集群是一个提供在多个Redis间节点间共享数据的程序集
    2、Redis集群并不支持处理多个keys的命令,因为这需要在不同的节点间移动数据,从而达不到像Redis那样的性能,在高负载的情况下可能会导致不可预料的错误
    3、Redis集群通过分区来提供一定程度的可用性,在实际环境中当某个节点宕机或者不可达的情况下可继续处理命令

    2.2、Redis集群的优势

    1、自动分割数据到不同的节点上
    2、整个集群的部分节点失败或者不可达的情况下能够继续处理命令

    2.3、Redis集群的实现方法

    1、有客户端分片
    2、代理分片
    3、服务器端分片

    2.4、Redis-Cluster数据分片

    1、Redis集群没有使用一致性hash,而是引入了哈希槽概念
    2、Redis集群有16384个哈希槽
    3、每个key通过CRC16校验后对16384取余来决定放置槽
    4、集群的每个节点负责一部分哈希槽
    Redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value
    时,redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余数,
    这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大
    致均等的将哈希槽映射到不同的节点。
    5、数据分片
    以3个节点组成的集群为例
    节点A包含0到5500号哈希槽
    节点B包含5501到11000号哈希槽
    节点C包含11001到16384号哈希槽
    支持添加或者删除节点
    添加/删除节点无需停止服务(支持热状态)
    例如:
    如果想新添加个节点D,需要移动节点A,B,C中的部分槽到D上
    如果想移除节点A,需要将A中的槽移到B和C节点上,再将没有任何槽的A节点从集群中移除

    2.5、Redis-Cluster的主从复制模型

    1、集群中具有A,B,C三个节点,如果节点B失败了,整个集群就会因缺少5501-11000这个范围的槽而不可用
    2、为每个节点添加一个从节点A1,B1,C1,整个集群便有三个master节点和三个slave节点组成,在节点B失败后,集群便会选举B1为新的主节点继续服务
    3、当B和B1都失败后,集群将不可用

    三、搭建Redis集群

    3.1、案例环境

    VMware虚拟机;6台Linux服务器安装Centos 7.6系统

    master1 192.168.73.10:6379 slave1 192.168.73.40:6379
    master2 192.168.73.20:6379 slave2 192.168.73.50:6379
    master3 192.168.73.30:6379 slave3 192.168.73.60:6379

    3.2、实验步骤

    1、修改配置文件

    [root@Master1 ~]# vi /etc/redis/6379.conf
     70 bind 192.168.73.10  ###删除之前的127.0.0.1,改为各主机的IP地址
     89 protected-mode no  ###关闭保护模式
     137 daemonize yes  ###以独立进程启动
     833 cluster-enabled yes  ###开启群集功能
     841 cluster-config-file nodes-6379.conf  ###群集名称文件设置
     847 cluster-node-timeout 15000  ###群集超时时间
     700 appendonly yes  ###开启aof持久化
    

    2、正常启动后,/var/lib/redis/6379/目录下会多出三个文件,第一个是持久化文件appendonly.aof,第二个是RDB持久文件dump.rdb,另外一个是节点首次启动生成的nodes-6379.conf

    [root@Master1 ~]# /etc/init.d/redis_6379 start ###重启服务
    [root@Master1 ~]# cd /var/lib/redis/6379/
    [root@Master1 6379]# ls
    appendonly.aof  dump.rdb  nodes-6379.conf
    

    仅在一台redis中操作,准备生成集群:
    3、导入redis-3.2.0.gem 至/OPT并执行

    [root@Master1 ~]# cd /opt
    [root@Master1 opt]# yum -y install ruby rubygems
    [root@Master1 opt]# gem install redis-3.2.0.gem
    Successfully installed redis-3.2.0
    Parsing documentation for redis-3.2.0
    Installing ri documentation for redis-3.2.0
    1 gem installed
    

    4、创建集群
    六个实例分为三组,每组一主一从,–replicas 1表示每组一个从,下面交互的时候需要输入yes才可以创建。

    [root@Master1 opt]# redis-cli --cluster create --cluster-replicas 1 192.168.73.10:6379 192.168.73.20:6379 192.168.73.30:6379 192.168.73.40:6379 192.168.73.50:6379 192.168.73.60:6379
    >>> Performing hash slots allocation on 6 nodes...
    Master[0] -> Slots 0 - 5460
    Master[1] -> Slots 5461 - 10922
    Master[2] -> Slots 10923 - 16383   ###哈希槽
    Adding replica 192.168.73.50:6379 to 192.168.73.10:6379
    Adding replica 192.168.73.60:6379 to 192.168.73.20:6379
    Adding replica 192.168.73.40:6379 to 192.168.73.30:6379   ###主从对应关系
    M: e3e856a7b69bff9830dbde43389accdd35e69808 192.168.73.10:6379
       slots:[0-5460] (5461 slots) master
    M: 93cb88f8ef0702f09af6ee6147f17a65282d84d7 192.168.73.20:6379
       slots:[5461-10922] (5462 slots) master
    M: 0b54b026e3a10a667448bfc8a694de5859c77ede 192.168.73.30:6379
       slots:[10923-16383] (5461 slots) master
    S: 259cf1fa747e04cb26f48a9b7337f3b328f6d3fa 192.168.73.40:6379
       replicates 0b54b026e3a10a667448bfc8a694de5859c77ede
    S: 7e4145fc2d0e7ed4eae352988a6f6ce727e961b5 192.168.73.50:6379
       replicates e3e856a7b69bff9830dbde43389accdd35e69808
    S: 3c0cb9d3b6e897fa98e3519d86c18e7724d96ca2 192.168.73.60:6379
       replicates 93cb88f8ef0702f09af6ee6147f17a65282d84d7
    Can I set the above configuration? (type 'yes' to accept): yes
    >>> Nodes configuration updated
    >>> Assign a different config epoch to each node
    >>> Sending CLUSTER MEET messages to join the cluster
    Waiting for the cluster to join
    ....
    >>> Performing Cluster Check (using node 192.168.73.10:6379)
    M: e3e856a7b69bff9830dbde43389accdd35e69808 192.168.73.10:6379
       slots:[0-5460] (5461 slots) master
       1 additional replica(s)
    S: 3c0cb9d3b6e897fa98e3519d86c18e7724d96ca2 192.168.73.60:6379
       slots: (0 slots) slave
       replicates 93cb88f8ef0702f09af6ee6147f17a65282d84d7
    S: 7e4145fc2d0e7ed4eae352988a6f6ce727e961b5 192.168.73.50:6379
       slots: (0 slots) slave
       replicates e3e856a7b69bff9830dbde43389accdd35e69808
    S: 259cf1fa747e04cb26f48a9b7337f3b328f6d3fa 192.168.73.40:6379
       slots: (0 slots) slave
       replicates 0b54b026e3a10a667448bfc8a694de5859c77ede
    M: 93cb88f8ef0702f09af6ee6147f17a65282d84d7 192.168.73.20:6379
       slots:[5461-10922] (5462 slots) master
       1 additional replica(s)
    M: 0b54b026e3a10a667448bfc8a694de5859c77ede 192.168.73.30:6379
       slots:[10923-16383] (5461 slots) master
       1 additional replica(s)
    [OK] All nodes agree about slots configuration.
    >>> Check for open slots...
    >>> Check slots coverage...
    [OK] All 16384 slots covered.
    

    5、主从数据库验证

    [root@Master1 ~]# redis-cli -h 192.168.73.20 -p 6379 -c
    192.168.73.20:6379> set score 100
    -> Redirected to slot [5176] located at 192.168.73.10:6379
    OK
    192.168.73.10:6379> quit
    
    [root@Master1 ~]# redis-cli -h 192.168.73.30 -p 6379 -c
    192.168.73.30:6379> get score
    -> Redirected to slot [5176] located at 192.168.73.10:6379
    "100"
    
    192.168.73.10:6379> cluster info  ###查看集群状态
    cluster_state:ok
    cluster_slots_assigned:16384
    cluster_slots_ok:16384
    cluster_slots_pfail:0
    cluster_slots_fail:0
    cluster_known_nodes:6
    cluster_size:3
    cluster_current_epoch:6
    cluster_my_epoch:1
    cluster_stats_messages_ping_sent:161
    cluster_stats_messages_pong_sent:180
    cluster_stats_messages_sent:341
    cluster_stats_messages_ping_received:175
    cluster_stats_messages_pong_received:161
    cluster_stats_messages_meet_received:5
    cluster_stats_messages_received:341
    
    192.168.73.10:6379> cluster nodes  ###查看节点信息
    3c0cb9d3b6e897fa98e3519d86c18e7724d96ca2 192.168.73.60:6379@16379 slave 93cb88f8ef0702f09af6ee6147f17a65282d84d7 0 1605022024161 6 connected
    7e4145fc2d0e7ed4eae352988a6f6ce727e961b5 192.168.73.50:6379@16379 slave e3e856a7b69bff9830dbde43389accdd35e69808 0 1605022022148 5 connected
    259cf1fa747e04cb26f48a9b7337f3b328f6d3fa 192.168.73.40:6379@16379 slave 0b54b026e3a10a667448bfc8a694de5859c77ede 0 1605022022000 4 connected
    93cb88f8ef0702f09af6ee6147f17a65282d84d7 192.168.73.20:6379@16379 master - 0 1605022023155 2 connected 5461-10922
    e3e856a7b69bff9830dbde43389accdd35e69808 192.168.73.10:6379@16379 myself,master - 0 1605022023000 1 connected 0-5460
    0b54b026e3a10a667448bfc8a694de5859c77ede 192.168.73.30:6379@16379 master - 0 1605022021000 3 connected 10923-16383
    

    3.3、实验总结

    1、导致群集down掉的两种情况
    (1)三个master服务器全部宕机
    (2)master1宕机,对应的slave1也发生了宕机
    2、在上述实验中,如果master1宕机,slave1会继承master1的哈希槽,成为master1,这时master1重新启动之后会变成slave节点,且就算刚才顶替上来的slave1节点关机掉,master1依然是slave节点。

    展开全文
  • 检查当前redis服务的启动状态 sudo /etc/init.d/redis-server status 安装完毕,需要配置集群的,可以都按以上安装。 二.修改配置文件 修改配置文件 sudo vi /etc/redis/redis.conf 注释掉-bind 127.0.0.1,允许...

    一.安装redis

    安装redis服务(只需要一句命令,会有安装询问,输入Y即可)

    sudo apt-get install redis-server
    

    检查当前redis服务的启动状态

    sudo /etc/init.d/redis-server status
    

    在这里插入图片描述
    安装完毕,需要配置集群的,可以都按以上安装。

    二.修改配置文件

    修改配置文件

    sudo vi /etc/redis/redis.conf
    

    注释掉-bind 127.0.0.1,允许远程访问
    在这里插入图片描述
    开启访问密码,requirepass 自定义密码
    在这里插入图片描述
    重启redis服务

    sudo /etc/init.d/redis-server restart
    

    以上,则完成单机redis配置。

    三.配置redis集群(主从配置)

    按实际需要选定其中一台redis服务作为主机(master)。

    编辑redis配置文件

    sudo vi /etc/redis/redis.conf
    

    如果主机设置了密码,则所有主从机器都需要添加主机密码(建议主从机器的密码一致)

    masterauth 主机密码
    

    在这里插入图片描述
    修改所有主机以外的从机配置(主机不用配置)

    slaveof 106.55.58.88 6379
    

    在这里插入图片描述
    然后,重启redis服务

    sudo /etc/init.d/redis-server restart
    

    测试,从主机set,从机get成功,则配置成功。

    展开全文
  • 1、使用命令检查REDIS状态: /java/redis/redis7000/src/redis-trib.rb check 192.168.249.230:7000 [ERR] Nodes don't agree about configuration! >>> Check for open slots... [WARNING] Node 192.

    原因是redis出错了。解决方法如下:

    1、使用命令检查REDIS状态: /java/redis/redis7000/src/redis-trib.rb check 192.168.249.230:7000

    [ERR] Nodes don't agree about configuration!
    >>> Check for open slots...
    [WARNING] Node 192.168.249.230:7001 has slots in importing state (4658).
    [WARNING] The following slots are open: 4658
    >>> Check slots coverage...
    [OK] All 16384 slots covered.

    2、使用命令修复REDIS: /java/redis/redis7000/src/redis-trib.rb fix  192.168.249.230:7001

    [OK] All nodes agree about slots configuration.
    >>> Check for open slots...
    >>> Check slots coverage...
    [OK] All 16384 slots covered.


    通过以上两步即可解决:CLUSTERDOWN The cluster is down

    展开全文
  • 部署redis-cluster集群

    2020-11-11 21:50:08
    一、Redis集群简介 Redis Cluster是一个无中心的结构,每个节点都保存数据和整个群集的状态。每个节点都会保存其他节点的信息,知道其他节点所负责的槽,并且会与其他节点定时发送心跳信息,能够及时感知群集中异常...
  • 在对数据库中的16384个槽都进行了指派之后,集群就会进入上线状态,这时客户端就可以向集群中的节点发送数据命令了 二、判断执行键所属槽 当客户端向节点发送与数据库键有关的命令时,接收命令的节点会计算出命令要...
  • Redis - 集群模式总结

    2019-05-28 16:40:08
    集群模式下,拥有16384个slot,只有当所有slot都有指派,集群才处于上线状态,出于性能考虑,每个节点都会记录所有slot的指派状态。 重新分片:将任意数量已经指派给源节点的slot指派给新的节点。 节点接受命令...
  • 在对数据库中的16384个槽都进行了指派之后,集群就会进入上线状态,这时客户端就可以向集群中的节点发送数据命令了。 当客户端向节点发送与数据库键有关的命令时,接收命令的节点会计算出命令要处理的数据库键属于...
  • 四、集群伸缩 伸缩原理 在不影响集群对外服务 的情况下,可以为集群添加节点进行扩容也可以下线...正式环境建议使用redis-trib.rb add-node命令加入新节点,该命令内部会 执行新节点状态检查,如果新节点已经加入其他集
  • 快速部署Redis集群 一、Redis集群简介 Redis Cluster是一个无中心的结构,每个节点都保存数据和整个群集的状态。每个节点都会保存其他节点的信息,知道其他节点所负责的槽,并且会与其他节点定时发送心跳信息,能够...
  • 1、使用trib的check命令检查当前集群节点状态 $ redis-trib.rb check 192.169.0.175:700 2、新增两个节点。注意,新增节点最好为偶数个,保持节点为奇数,选择时不会出现平票现象 #拷贝四个配置文件,增加两个主...
  • 在对数据库中的16384个槽都进行了指派之后,集群就会进入上线状态,这时客户端就可以向集群中的节点发送数据命令了。 实现原理 当客户端向节点发送与数据库键有关的命令时,接收命令的节点会计算出命令要处理的...
  • 由于 Redis 集群需要使用 ruby 命令,所以我们需要安装 ruby 和相关接口。 yum install ruby yum install rubygems gem install redis (百度上方法众多,自行下载) 下载之后(redis-trib.rb 建议放在redis同一目录...
  • Redis单机

    2021-04-26 19:07:32
    Redis 在 Web 集群中用来做状态服务器,主要用于存储缓存登录、模板锁、 SessionID、WebSocket 等,发挥并对所有的访问和操作进行验证的作用。 编译环境 gcc -v #检查是否有 gcc 编译器 如果没有 gcc 环境,则需要...
  • Redis-Cluster 动态增加主从节点

    千次阅读 2018-04-16 11:22:22
    1:首先使用trib的check命令检查集群当前的节点状态redis-trib.rb check xxx:63802:新增两个节点配置文件。(cp现有集群节点配置文件)cd /usr/local/src/redis-3.2.4/redis_cluster/ cp -r 6380.conf 6386.conf ...
  • 可以看到redis-trib.rb具有以下功能:1、create:创建集群2、check:检查集群,检查集群状态命令,没有其他参数,只需要选择一个集群中的一个节点即可3、info:查看集群信息4、fix:修复集群5、reshard:在线迁移...
  • Nodes don't agree about configuration!

    千次阅读 2018-09-07 11:40:36
    Redis集群部署完成后,检查测试集群状态 bin/redis-cli -h ip -p port ip和port换成你集群中机器的任意ip和使用端口 进入redis客户端后查看集群情况 cluster nodes 都是connected说明集群中redis机器链接...
  • Flink 状态管理与检查点机制 Flink Standalone 集群部署 六、HBase Hbase 简介 HBase 系统架构及数据结构 HBase 基本环境搭建 (Standalone /pseudo-distributed mode) HBase 集群环境搭建 HBase 常用 Shell 命令 ...
  • 基础4 ElasticsSearch 集群健康检查,文档CRUD 基础5 ElasticsSearch 多种搜索方式 基础6 ElasticSearch 嵌套聚合,下钻分析,聚合分析 基础7 Elasticsearch的基础分布式架构 基础8 ElasticSearch shard ...
  • 《docker下,一行命令搭建elasticsearch6.5.0集群(带head插件和ik分词器)》 《docker下,极速搭建spark集群(含hdfs集群)》 《docker下的spark集群,调整参数榨干硬件》 《用golang官方Docker镜像运行项目》 《Docker...
  • 自动化代码检查 sonar 代码规范 阿里巴巴Java开发规范手册 UMPAY——编码规范 日志规范 异常规范 网络 协议 TCP/IP HTTP hession file HTTPS 负载均衡 容器 JBOSS tomcat resin jetty 容灾 ...
  • |____17.Kubernetes集群健康检查与测试(1).mp4 |____16.Kubernetes集群搭建Node2安装.mp4 |____15.Kubernetes集群搭建Node安装-启动.mp4 |____14.Kubernetes集群搭建Node安装-kube-proxy服务.mp4 |____13....
  • 变量和类型 - 变量的命名 / 变量的使用 / input函数 / 检查变量类型 / 类型转换 数字和字符串 - 整数 / 浮点数 / 复数 / 字符串 / 字符串基本操作 / 字符编码 运算符 - 数学运算符 / 赋值运算符 / 比较运算符 / 逻辑...
  • 在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...
  • redis 操作 github.com/go-redis/redis etcd 操作 github.com/coreos/etcd/clientv3 kafka https://github.com/Shopify/sarama https://github.com/bsm/sarama-cluster excel 操作 github....
  • iredis:支持自动补全和高亮显示的 redis 命令行工具。 kube-shell:K8S 命令行集成的 shell 工具。 litecli:支持自动补全和语法高亮的 SQLite 命令行工具。 mycli:支持自动补全和语法高亮的 MySQL 命令行...
  • JAVA上百实例源码以及开源项目

    千次下载 热门讨论 2016-01-03 17:37:40
    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

空空如也

空空如也

1 2
收藏数 28
精华内容 11
关键字:

检查redis集群状态命令

redis 订阅