mongodb复制集群搭建
1、主机配置文件
primary.conf
dbpath=/usr/local/MongoDB/data/replication/primary
logpath=/usr/local/MongoDB/logs/replication_log/primary.log
logappend=true # 日志追加写入
replSet=replication1 # 复制集名称
port=27117
oplogSize=10000 # 操作日志容量
fork=true # 后台启动
2、从机配置文件
1)、secondary1.conf
dbpath=/usr/local/MongoDB/data/replication/secondary1
logpath=/usr/local/MongoDB/logs/replication_log/secondary1.log
logappend=true # 日志追加写入
replSet=replication1 # 复制集名称
port=27118
oplogSize=10000 # 操作日志容量
fork=true # 后台启动
2)、secondary2.conf
dbpath=/usr/local/MongoDB/data/replication/secondary2
logpath=/usr/local/MongoDB/logs/replication_log/secondary2.log
logappend=true # 日志追加写入
replSet=replication1 # 复制集名称
port=27119
oplogSize=10000 # 操作日志容量
fork=true # 后台启动
3、仲裁配置文件
1)、arbitration1.conf
dbpath=/usr/local/MongoDB/data/replication/arbitration1
logpath=/usr/local/MongoDB/logs/replication_log/arbitration1.log
logappend=true # 日志追加写入
replSet=replication1 # 复制集名称
port=27120
oplogSize=10000 # 操作日志容量
fork=true # 后台启动
2)、arbitration2.conf
dbpath=/usr/local/MongoDB/data/replication/arbitration2
logpath=/usr/local/MongoDB/logs/replication_log/arbitration2.log
logappend=true # 日志追加写入
replSet=replication1 # 复制集名称
port=27121
oplogSize=10000 # 操作日志容量
fork=true # 后台启动
启动mongodb
mongod --config /root/mongodb/replication/configs/db0.conf
进入客服端
./mongo --port 27117
初始化 priority:权重(数字越大优先级越高)arbiterOnly:是否是仲裁节点
rs.initiate({ _id:"replication1",
members:[ {_id:0,host:"127.0.0.1:27117",priority:3},
{_id:1,host:"127.0.0.1:27118",priority:2},
{_id:2,host:"127.0.0.1:27119",priority:2},
{_id:3,host:"127.0.0.1:27120",arbiterOnly:true},
{_id:4,host:"127.0.0.1:27121",arbiterOnly:true}] });
rs.slaveOk()允许在从节点上读取数据
查看状态rs.isMaster()
消息队列
一对一
先订阅:subscribe pingdao1
再另一个发布:publish pingdao1 yaofadeneirong
一对多
多台一起订阅:subscribe pingdao1
再发布:publish pingdao1 yaofadeneirong
redis哨兵模式
1、master.conf 配置文件
bind 0.0.0.0
port 6346
daemonize yes
protected-mode no
pidfile "/var/run/6346.pid"
dbfilename "dump.rdb"
2、server.conf配置文件
bind 0.0.0.0
port 6347
daemonize yes
protected-mode no
pidfile "/var/run/6347.pid"
dbfilename "dump6347.rdb"
slaveof 127.0.0.1 6346
3、sentinel.conf配置文件
port 6349
daemonize yes
pidfile "/var/run/redis-sentinel.pid"
protected-mode no
sentinel monitor mymaster 127.0.0.1 6346 1
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 15000
#####
sentinel monitor mymaster 127.0.0.1 6346 1
- sentinel`:指示是哨兵配置命令。
- `monitor`:监控命令,用于配置哨兵监控指定的主节点。
- `mymaster`:指定主节点的名称,可以根据你的需求自定义名称。
- `127.0.0.1`:主节点的 IP 地址,这里使用的是 `127.0.0.1`,表示本地主机。你可以将其替换为实际的主节点 IP 地址。
- `6379`:主节点的端口号,这里使用的是 `6379`,表示 Redis 默认的端口号。你可以将其替换为实际的主节点端口号。
- `1:指定如果超过 `1` 个哨兵认为主节点不可用,那么就会进行故障转移。
#####
4、启动redis
主机:redis-server ./master.conf
从机:redis-server ./server.conf
哨兵:redis-sentinel ./sentinel.conf
5、查看状态
info replication
6、读写分离:
写:
set name "zhangsan"
读:keys *
7、主机宕机:
主机:shutdown
从机:info replication
MongoDB基本操作
1、启动服务
mongod --config /root/mongodb/mongodbServer/bin/mongod.conf
2、可进入 mongoDB 的 shell 命令行
mongo
3、插入数据
db.db3.insert({"name":"zhangsan","age":20})
4、修改操作
将zhangsan改为lisi
db.db3.update({"name":"zhangsan"},{"$set":{"naem":"lisi"}})
将年龄-3
db.db3.update({"name":"zhangsan"},{"$inc":{"age:-3"}})
5、查找操作
db.db3.find()