安装redis 官方文档
docker run -d --net host -v /opt/myconfig/redis/redis.conf:/usr/local/etc/redis/redis.conf --name redis redis redis-server /usr/local/etc/redis/redis.conf
- 用集群 网络用 --net host 主机模式
- 用主机模式就不用指定端口映射 。 否则会报错
WARNING: Published ports are discarded when using host network mode
- redis.conf 官方文档
高可用 主从 哨兵
配置主从
- 最少配置
replicaof masterip masterport
- 单独配置主从时 不支持 集群 改为
cluster-enabled no
- 在集群中 配置主从 需要在创建集群的时通过 --cluster-replicas 指定从机数量
主从管理
- 查看主从信息
- redis-cli -h 127.0.0.1 -p 6379 info replication
- 配置从机
- slaveof MASTER_IP MASTER_PORT
搭建哨兵 在从机中选择主机
搭建哨兵系统
- redis安装包里有 该系统 不用重新去下,没有的要下一个
- 最少配置文件
#指示 Sentinel 去监视一个名为 mymaster 的主服务器, 这个主服务器的 IP 地址为 127.0.0.1 , 端口号为 6379 ,
# 这个主服务器判断为失效至少需要 2 个 Sentinel 同意 (只要同意 Sentinel 的数量不达标,自动故障迁移就不会执行)
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel down-after-milliseconds mymaster 60000
sentinel failover-timeout mymaster 180000
sentinel parallel-syncs mymaster 1
daemonize yes
- 启动命令
redis-server /path/to/sentinel.conf --sentinel
哨兵系统管理
- 进入系统 默认的端口为 26379 可以自己设定
redis-cli -p 26379
- 管理命令 官方文档
集群(多个节点之间共享数据)官方文档
搭建集群redis5
- 最少配置文件
port 7000
cluster-enabled yes
#设定保存节点配置文件的路径 由 Redis 集群在启动时创建, 并自动进行更新,无须人为修改
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
- 集群创建命令
redis-cli --cluster create 节点1 节点2 ...... --cluster-replicas 2
- --cluster-replicas 2 为主机设置2个从机
[OK] All 16384 slots covered
说明 所有的槽点可用 证明集权搭建成功- docker下 redis集群不支持 端口映射 要指定 --net host
Currently Redis Cluster does not support NATted environments and in general environments where IP addresses or TCP ports are remapped.
In order to make Docker compatible with Redis Cluster you need to use the host networking mode of Docker.
Please check the --net=host option in the Docker documentation for more information.
集群管理
节点管理
- 显示所有节点
redis-cli -h 127.0.0.1 -p 6379 cluster nodes
- myself 指的是当前节点
- 增加节点
- 增加空节点 然后 数据分片 默认为主节点
redis-cli --cluster add-node 127.0.0.1:7006 127.0.0.1:7000
- 第一个为新增节点的地址 第二个为 是集群内的任意一个地址
- 地址要统一 都用外网/内网 否则虽然添加成功 因为不能识别为同一集群
- 增加从节点
redis-cli --cluster add-node 127.0.0.1:7006 127.0.0.1:7000 --cluster-slave --cluster-master-id 3c3a0c74aae0b56170ccb03a76b60cfe7dc1912e
- 不指定 主节点增加一个从节点
redis-cli --cluster add-node 127.0.0.1:7006 127.0.0.1:7000 --cluster-slave
redis 127.0.0.1:7006> cluster replicate 3c3a0c74aae0b56170ccb03a76b60cfe7dc1912e
在从节点中操作- 删除节点
redis-cli --cluster del-node 127.0.0.1:7000
``
- 第一个 node 是集群中的随机 节点
- 第二个 参数 是集群 中的 要删除节点的 id
槽点管理
- 查看槽点
redis-cli --cluster check 127.0.0.1:7000
*槽点重新分片redis-cli --cluster reshard 127.0.0.1:7000
[OK] All 16384 slots covered.
说明 槽点分片成功
原文地址:https://www.cnblogs.com/eatandsleep/p/12219152.html
时间: 2024-10-07 12:11:44