赤色烙印 发表于 2018-11-4 10:52:33

redis集群的部署

  注意事项:
  1.如果是使用redis-trib.rb工具构建集群,集群构建完成前不要配置密码,集群构建完毕再通过config set + config rewrite命令逐个机器设置密码
  2.如果对集群设置密码,那么requirepass和masterauth都需要设置,否则发生主从切换时,就会遇到授权问题,可以模拟并观察日志
  3.各个节点的密码都必须一致,否则Redirected就会失败
config set masterauth 123456  
config set requirepass 123456
  
config rewrite

[*]  要求6台服务器
  三主三从
  2.在三台服务器上分别启动redis
  分别在每台服务器上部署redis,并启动起来
  启动之前需要和redis单机安装不同的的配置文件参数不一样
  vi /opt/redids/conf/配置文件
  database 1#默认有16个库选择一个
  cluster-enabled yes#开启集群
  cluster-config-file #/opt/redis/conf/nodes.conf   #开启集群的时候自动生成和redis的配置文件没有任何关系
  appendonlyyes #开启持久化存储
  3.启动所有的redis服务,启动以后只能说明启动但是6台服务器还未构成集群#参考单机部署
  4.集群工作
  1.yum-y install rubyrubygems
  geminstall redis
  cp/root/redis-3.2.2/src/redis-trib.rb/opt/redis/bin/#redis bin目录已经在环境变量了
  redis-trib.rbcreate--replicas 1IP1:6379 IP2:6379 IP3:6379 IP4:6379 IP5:6379 IP6 :6379
  --replicas 1是指一个主节点有个备节点 就是说三主三被
  结束以后会发现/opt/redis/conf/nodes.conf 里面已经生成了集群的信息
  5.查看集群的状态
  redis-cli-h IP clusternodes
  6.设置keyvalue 手动验证
  具体实验步骤
  说明:视频上用的是
  192.168.1.0/24   我自己用的是 192.168.56.0/24 网段

  redis 集群的通讯的端口默认是服务端口加上10000


  1.所有机器 停止selinux 和 iptables (iptables 有的话端口允许)(all)
  yum-y installgccctl
  2.每台服务器都上传reids(all)
  # pwd
  /usr/local/src
  # ls
  redis-3.0.6.tar.gz
  #
  3.创建目录(all)
  mkdir/usr/local/redis3-p
  4.安装
  cd /usr/local/src/
  tar xf   redis-3.0.6.tar.gz
  cdredis-3.0.6
  makePREFIX=/usr/local/redis3install
  5. 初始化操作
  mkdir-p /usr/local/redis3/cluster/7111    #192.168.56.111
  mkdir-p /usr/local/redis3/cluster/7112   #192.168.56.112
  mkdir-p /usr/local/redis3/cluster/7113#192.168.56.113
  mkdir-p /usr/local/redis3/cluster/7114   #192.168.56.114
  mkdir-p /usr/local/redis3/cluster/7115#192.168.56.115
  mkdir-p /usr/local/redis3/cluster/7116   #192.168.56.116
  scp redis.conf 192.168.56.111:/usr/local/redis3/cluster/7111/redis-7111.conf
  scp redis.conf 192.168.56.112:/usr/local/redis3/cluster/7112/redis-7112.conf
  scp redis.conf 192.168.56.113:/usr/local/redis3/cluster/7113/redis-7113.conf
  scp redis.conf 192.168.56.114:/usr/local/redis3/cluster/7114/redis-7114.conf
  scp redis.conf 192.168.56.115:/usr/local/redis3/cluster/7115/redis-7115.conf
  scp redis.conf 192.168.56.116:/usr/local/redis3/cluster/7116/redis-7116.conf
  6.修改redis配置文件
  vim/usr/local/redis3/cluster/7111/redis-7111.conf
  daemonize yes
  pidfile /var/run/redis-7111.pid#此处修改
  port 7111
  tcp-backlog 511
  timeout 0
  tcp-keepalive 0
  loglevel notice
  logfile ""
  databases1
  save 900 1
  save 300 10
  save 60 10000
  stop-writes-on-bgsave-error yes
  rdbcompression yes
  rdbchecksum yes
  dbfilename dump.rdb
  dir ./
  slave-serve-stale-data yes
  slave-read-only yes
  repl-diskless-sync no
  repl-diskless-sync-delay 5
  repl-disable-tcp-nodelay no
  slave-priority 100
  appendonly yes
  appendfilename "appendonly.aof"
  appendfsync everysec
  no-appendfsync-on-rewrite no
  auto-aof-rewrite-percentage 100
  auto-aof-rewrite-min-size 64mb
  aof-load-truncated yes
  lua-time-limit 5000
  cluster-enabled yes
  cluster-config-file/usr/local/redis3/cluster/7111/nodes.conf#此处修改
  cluster-node-timeout 15000
  cluster-migration-barrier 1
  slowlog-log-slower-than 10000
  slowlog-max-len 128
  latency-monitor-threshold 0
  notify-keyspace-events ""
  hash-max-ziplist-entries 512
  hash-max-ziplist-value 64
  list-max-ziplist-entries 512
  list-max-ziplist-value 64
  set-max-intset-entries 512
  zset-max-ziplist-entries 128
  zset-max-ziplist-value 64
  hll-sparse-max-bytes 3000
  activerehashing yes
  client-output-buffer-limit normal 0 0 0
  client-output-buffer-limit slave 256mb 64mb 60
  client-output-buffer-limit pubsub 32mb 8mb 60
  hz 10
  aof-rewrite-incremental-fsync yes
  sed -i 's#7111#7116#g' redis-7116.conf   其余的配置文件拷贝过去 替换
  7.启动所有的redis
  /usr/local/redis3/bin/redis-server   /usr/local/redis3/cluster/7111/redis-7111.conf
  /usr/local/redis3/bin/redis-server   /usr/local/redis3/cluster/7112/redis-7112.conf
  /usr/local/redis3/bin/redis-server   /usr/local/redis3/cluster/7113/redis-7113.conf
  /usr/local/redis3/bin/redis-server   /usr/local/redis3/cluster/7114/redis-7114.conf
  /usr/local/redis3/bin/redis-server   /usr/local/redis3/cluster/7115/redis-7115.conf
  /usr/local/redis3/bin/redis-server   /usr/local/redis3/cluster/7116/redis-7116.conf
  检查所有服务的端口都已经启动
  # netstat-lntup
  Active Internet connections (only servers)
  Proto Recv-Q Send-Q Local Address         Foreign Address         State       PID/Program name
  tcp      0      0 0.0.0.0:22            0.0.0.0:*               LISTEN      1104/sshd
  tcp      0      0 0.0.0.0:17111         0.0.0.0:*               LISTEN      5379/redis-server *
  tcp      0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1603/master
  tcp      0      0 0.0.0.0:7111            0.0.0.0:*               LISTEN      5379/redis-server *
  tcp6       0      0 :::22                   :::*                  LISTEN      1104/sshd
  tcp6       0      0 :::17111                :::*                  LISTEN      5379/redis-server *
  tcp6       0      0 ::1:25                  :::*                  LISTEN      1603/master
  tcp6       0      0 :::7111               :::*                  LISTEN      5379/redis-server *
  #
  # ps -ef |grep redis
  root       5379      10 08:13 ?      00:00:00 /usr/local/redis3/bin/redis-server *:7111
  root       5410   52750 08:19 pts/0    00:00:00 grep --color=auto redis
  #
  8.创建集群
  yum-y install rubyrubygems   (all)
  安装redis ruby的接口
  geminstall redis(all)
  cd/usr/local/src/redis-3.0.6/src
  cpredis-trib.rb/usr/local/bin/redis-trib
  如果是如下创建的话可以看主 111,112,113 为master    114,115,116为slave,不符合要求
  --replicas 1 表示一个master有一个slave
  (创建命令在任意一台redis执行)
  # redis-trib create   --replicas 1192.168.56.111:7111192.168.56.112:7112192.168.56.113:7113192.168.56.114:7114192.168.56.115:7115 192.168.56.116:7116
  >>> Creating cluster
  >>> Performing hash slots allocation on 6 nodes...
  Using 3 masters:
  192.168.56.111:7111
  192.168.56.112:7112
  192.168.56.113:7113
  Adding replica 192.168.56.114:7114 to 192.168.56.111:7111
  Adding replica 192.168.56.115:7115 to 192.168.56.112:7112
  Adding replica 192.168.56.116:7116 to 192.168.56.113:7113
  M: 8c1890f102a035a05836dd3a5621499d69ad97eb 192.168.56.111:7111
  slots:0-5460 (5461 slots) master
  M: f9455c930ac9a932ed9b4bcb2cb6d929ab912941 192.168.56.112:7112
  slots:5461-10922 (5462 slots) master
  M: 289acc8a4c879f9cd9ca40f29825dd67a64a71c8 192.168.56.113:7113
  slots:10923-16383 (5461 slots) master
  S: 28b18432a99ffc67f31e7b94f63199acae8bcc24 192.168.56.114:7114
  replicates 8c1890f102a035a05836dd3a5621499d69ad97eb
  S: 4fd1072ae882c2a9fc332c968a5888fa38b8435e 192.168.56.115:7115
  replicates f9455c930ac9a932ed9b4bcb2cb6d929ab912941
  S: d6f6fd5082874ee0ebe9a8bdc2575a1dcff23095 192.168.56.116:7116
  replicates 289acc8a4c879f9cd9ca40f29825dd67a64a71c8
  Can I set the above configuration? (type 'yes' to accept):
  如果不符合要求的话
  调整IP的顺序,创建完毕
  (创建命令在任意一台redis执行)
  # redis-trib create   --replicas 1192.168.56.111:7111192.168.56.112:7112192.168.56.113:7113192.168.56.114:7114192.168.56.115:7115 192.168.56.116:7116
  >>> Creating cluster
  >>> Performing hash slots allocation on 6 nodes...
  Using 3 masters:
  192.168.56.111:7111
  192.168.56.112:7112
  192.168.56.113:7113
  Adding replica 192.168.56.114:7114 to 192.168.56.111:7111
  Adding replica 192.168.56.115:7115 to 192.168.56.112:7112
  Adding replica 192.168.56.116:7116 to 192.168.56.113:7113
  M: 8c1890f102a035a05836dd3a5621499d69ad97eb 192.168.56.111:7111
  slots:0-5460 (5461 slots) master
  M: f9455c930ac9a932ed9b4bcb2cb6d929ab912941 192.168.56.112:7112
  slots:5461-10922 (5462 slots) master
  M: 289acc8a4c879f9cd9ca40f29825dd67a64a71c8 192.168.56.113:7113
  slots:10923-16383 (5461 slots) master
  S: 28b18432a99ffc67f31e7b94f63199acae8bcc24 192.168.56.114:7114
  replicates 8c1890f102a035a05836dd3a5621499d69ad97eb
  S: 4fd1072ae882c2a9fc332c968a5888fa38b8435e 192.168.56.115:7115
  replicates f9455c930ac9a932ed9b4bcb2cb6d929ab912941
  S: d6f6fd5082874ee0ebe9a8bdc2575a1dcff23095 192.168.56.116:7116
  replicates 289acc8a4c879f9cd9ca40f29825dd67a64a71c8
  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.56.111:7111)
  M: 8c1890f102a035a05836dd3a5621499d69ad97eb 192.168.56.111:7111
  slots:0-5460 (5461 slots) master
  M: f9455c930ac9a932ed9b4bcb2cb6d929ab912941 192.168.56.112:7112
  slots:5461-10922 (5462 slots) master
  M: 289acc8a4c879f9cd9ca40f29825dd67a64a71c8 192.168.56.113:7113
  slots:10923-16383 (5461 slots) master
  M: 28b18432a99ffc67f31e7b94f63199acae8bcc24 192.168.56.114:7114
  slots: (0 slots) master
  replicates 8c1890f102a035a05836dd3a5621499d69ad97eb
  M: 4fd1072ae882c2a9fc332c968a5888fa38b8435e 192.168.56.115:7115
  slots: (0 slots) master
  replicates f9455c930ac9a932ed9b4bcb2cb6d929ab912941
  M: d6f6fd5082874ee0ebe9a8bdc2575a1dcff23095 192.168.56.116:7116
  slots: (0 slots) master
  replicates 289acc8a4c879f9cd9ca40f29825dd67a64a71c8
   All nodes agree about slots configuration.
  >>> Check for open slots...
  >>> Check slots coverage...
   All 16384 slots covered.
  #
  生辰文件的节点信息(all)
  # ll
  total 52
  -rw-r--r--. 1 root root   0 Jun3 08:13 appendonly.aof
  -rw-r--r--. 1 root root    18 Jun3 08:39 dump.rdb
  -rw-r--r--. 1 root root   763 Jun3 08:39 nodes.conf
  -rw-r--r--. 1 root root 41584 Jun3 08:03 redis-7111.conf
  # pwd
  /usr/local/redis3/cluster/7111
  # catnodes.conf
  4fd1072ae882c2a9fc332c968a5888fa38b8435e 192.168.56.115:7115 slave f9455c930ac9a932ed9b4bcb2cb6d929ab912941 0 1496493590416 5 connected
  f9455c930ac9a932ed9b4bcb2cb6d929ab912941 192.168.56.112:7112 master - 0 1496493588394 2 connected 5461-10922
  d6f6fd5082874ee0ebe9a8bdc2575a1dcff23095 192.168.56.116:7116 slave 289acc8a4c879f9cd9ca40f29825dd67a64a71c8 0 1496493586373 3 connected
  28b18432a99ffc67f31e7b94f63199acae8bcc24 192.168.56.114:7114 slave 8c1890f102a035a05836dd3a5621499d69ad97eb 0 1496493589405 4 connected
  289acc8a4c879f9cd9ca40f29825dd67a64a71c8 192.168.56.113:7113 master - 0 1496493587385 3 connected 10923-16383
  8c1890f102a035a05836dd3a5621499d69ad97eb 192.168.56.111:7111 myself,master - 0 0 1 connected 0-5460
  vars currentEpoch 6 lastVoteEpoch 0
  #
  9验证redis集群(可以看出 redis集群生效 slot为第三个master的)
  # cd /usr/local/redis3/
  # ls
  bincluster
  # ./bin/redis-cli   -c-p 7116
  127.0.0.1:7116> setliuhxsanlang'
  Invalid argument(s)
  127.0.0.1:7116> setliuhxsanlang
  -> Redirected to slot located at 192.168.56.113:7113
  OK
  192.168.56.113:7113>
  # ./bin/redis-cli-c-p7111
  127.0.0.1:7111> getliuhx
  -> Redirected to slot located at 192.168.56.113:7113
  "sanlang"
  192.168.56.113:7113>
  10.查看节点的状态信息
  # ./redis-cli   -p 7114clusternodes
  289acc8a4c879f9cd9ca40f29825dd67a64a71c8 192.168.56.113:7113 master - 0 1496494716960 3 connected 10923-16383
  8c1890f102a035a05836dd3a5621499d69ad97eb 192.168.56.111:7111 master - 0 1496494716455 1 connected 0-5460
  4fd1072ae882c2a9fc332c968a5888fa38b8435e 192.168.56.115:7115 slave f9455c930ac9a932ed9b4bcb2cb6d929ab912941 0 1496494719985 5 connected
  f9455c930ac9a932ed9b4bcb2cb6d929ab912941 192.168.56.112:7112 master - 0 1496494718977 2 connected 5461-10922
  28b18432a99ffc67f31e7b94f63199acae8bcc24 192.168.56.114:7114 myself,slave 8c1890f102a035a05836dd3a5621499d69ad97eb 0 0 4 connected
  d6f6fd5082874ee0ebe9a8bdc2575a1dcff23095 192.168.56.116:7116 slave 289acc8a4c879f9cd9ca40f29825dd67a64a71c8 0 1496494717968 6 connected
  # pwd
  /usr/local/redis3/bin
  #


页: [1]
查看完整版本: redis集群的部署