redis 集群 哨兵
分布存储机制-槽
redis-cluster 把所有的物理节点映射到[0-16383]slot 上,cluster 负责维护 Redis 集群中内置了(0-16383) 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value 时,redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余数,这样每个key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节
单机redis安装
0.安装环境 yum install gcc-c++ 1.获取redis资源 wget http://download.redis.io/releases/redis-4.0.10.tar.gz 2.解压压缩包 tar zxvf redis-4.0.10.tar.gz 3.c语言编译 把redis编译过来 cd redis-4.0.10 make 4.指定安装路径 make install PREFIX=/指定安装路径
5.修改为后台运行 进入解压的文件复制配置文件redis.conf到安装目录
cp redis.conf /安装redis的据对路径bin下
修改redis.conf的 daemonize的属性 改为 yes
cluster-enabled yes打开集群
requirepass 密码设定
appendonly yes 打开aof存档 每秒保存 快照模式容易丢失数据或者
appendonlync always:总是执行
appendonlync everysec:每秒钟执行(默认)
appendonlync no:不执行
自动压缩文件
auto -aof -rewrite-percentage 100
auto -aof -rewrite-size 64mb
安装redis集群 主节点需要基数
1.进入解码包安装6个节点 make install PREFIX=/usr/local/redis-cluster/redis-1 make install PREFIX=/usr/local/redis-cluster/redis-2 make install PREFIX=/usr/local/redis-cluster/redis-3 make install PREFIX=/usr/local/redis-cluster/redis-4 make install PREFIX=/usr/local/redis-cluster/redis-5 make install PREFIX=/usr/local/redis-cluster/redis-6 2.复制解码包的配置文件 cp redis.conf /usr/local/redis-cluster/redis-1/bin cp redis.conf /usr/local/redis-cluster/redis-2/bin cp redis.conf /usr/local/redis-cluster/redis-3/bin cp redis.conf /usr/local/redis-cluster/redis-4/bin cp redis.conf /usr/local/redis-cluster/redis-5/bin cp redis.conf /usr/local/redis-cluster/redis-6/bin 3.修改节点端口 打开集群 vi /usr/local/redis-cluster/redis-1/bin/redis.conf 7001 vi /usr/local/redis-cluster/redis-2/bin/redis.conf 7002 vi /usr/local/redis-cluster/redis-3/bin/redis.conf 7003 vi /usr/local/redis-cluster/redis-4/bin/redis.conf 7004 vi /usr/local/redis-cluster/redis-5/bin/redis.conf 7005 vi /usr/local/redis-cluster/redis-6/bin/redis.conf 7006 port cluster-enabled 去掉注释 快速查找在不编辑的情况 /查找的内容 回车 4.启动各个节点服务 cd /usr/local/redis-cluster/redis-1/bin/ ./redis-server redis.conf cd /usr/local/redis-cluster/redis-2/bin/ ./redis-server redis.conf cd /usr/local/redis-cluster/redis-3/bin/ ./redis-server redis.conf cd /usr/local/redis-cluster/redis-4/bin/ ./redis-server redis.conf cd /usr/local/redis-cluster/redis-5/bin/ ./redis-server redis.conf cd /usr/local/redis-cluster/redis-6/bin/ ./redis-server redis.conf 6.查看服务启动情况 ps -ef | grep redis 7.确保防火墙关闭 systemctl stop firewalld 8.安装ruby yum install ruby yum install rubygems 9.安装环境 yum install ruby yum install rubygems gem install redis-3.2.0.gem 10.在解码包src文件下执行 ./redis-trib.rb create --replicas 1 192.168.25.140:7001 192.168.25.140:7002 192.168.25.140:7003 192.168.25.140:7004 192.168.25.140:7005 192.168.25.140:7006
application.yml 节点配置 所有的主从都要加以防其中一个主节点宕机,从节点变主节点
spring redis: cluster: nodes: - 192.168.0.*:7001 - 192.168.0.*:7002 - 192.168.0.*:7003 - 192.168.0.*:7004 - 192.168.0.*:7005 - 192.168.0.*:7006
edis 哨兵 复制 sentinel.conf到主节点bin里 修改成监听节点的IP port端口节点数量
cp sentinel.conf /usr/local/redis-cluster/redis1/bin/ vi /usr/local/redis-cluster/redis1/bin/sentinel.conf 修改成监听节点的IP port端口节点数量 例如: sentinel monitor mymaster 192.68.0.* 7001 2 启动哨兵 ./redis-sentinel sentinel.conf
首先我们要了解docker的网络类型有: None:不为容器配置任何网络功能,没有网络 --net=none Container:与另一个运行中的容器共享Network Namespace,--net=container:containerID Host:与主机共享Network Namespace,--net=host Bridge:Docker设计的NAT网络模型(默认类型) 重点关注下Host类型: host模式创建的容器没有自己独立的网络命名空间,是和物理机共享一个Network Namespace,并且共享物理机 的所有端口与IP。但是它将容器直接暴露在公共网络中,是有安全隐患的。 我们这里使用host网络进行搭建集群: #拉取镜像 docker pull redis:5.0.2 #创建容器 docker create --name redis-node01 --net host -v /data/redis-data/node01:/data redis:5.0.2 --cluster-enabled yes --cluster-config-file nodes-node-01.conf --port 6379 docker create --name redis-node02 --net host -v /data/redis-data/node02:/data redis:5.0.2 --cluster-enabled yes --cluster-config-file nodes-node-02.conf --port 6380 docker create --name redis-node03 --net host -v /data/redis-data/node03:/data redis:5.0.2 --cluster-enabled yes --cluster-config-file nodes-node-03.conf --port 6381 #启动容器 docker start redis-node01 redis-node02 redis-node03 #进入redis-node01容器进行操作 docker exec -it redis-node01 /bin/bash #组建集群(注意端口的变化) redis-cli --cluster create 192.188.215.130:6379 192.188.215.130:6380 192.188.215.130:6381 --cluster-replicas 0 查看集群信息: root@91df3e5228b1:/data# redis-cli 127.0.0.1:6379> CLUSTER NODES
浙公网安备 33010602011771号