redis主从[master、slave]

[size=large]
主从复制:让多个slave server拥有和master server相同的数据库副本。


特点
1.master可以有多个slave
2.除了多个slave连到相同的master外,slave也可以连接其他slave形成图状结构
3.主从复制不会阻塞master。也就是说当一个或多个slave与master进行初次同步数据时,master可以继续处理client发来的请求。
相反slave在初次同步数据时则会阻塞不能处理client的请求。
4.主从复制可以用来提高系统的可伸缩性,我们可以用多个slave 专门用于client的读请求,
如sort操作可以使用slave来处理。也可以用来做简单的数据冗余
5.可以在master禁用数据持久化,只需要注释掉master 配置文件中的所有save配置,然后只在slave上配置数据持久化


主从复制的过程
当设置好slave服务器后,slave会建立和master的连接,然后发送sync命令。
无论是第一次同步建立的连接还是连接断开后的重新连 接,master都会启动一个后台进程,将数据库快照保存到文件中,
同时master主进程会开始收集新的写命令并缓存起来。后台进程完成写文件 后,master就发送文件给slave,slave将文件保存到磁盘上,
然后加载到内存恢复数据库快照到slave上。接着master就会把缓存的命 令转发给slave。
而且后续master收到的写命令都会通过开始建立的连接发送给slave。
从master到slave的同步数据的命令和从 client发送的命令使用相同的协议格式。当master和slave的连接断开时slave可以自动重新建立连接。
如果master同时收到多个 slave发来的同步连接命令,只会使用启动一个进程来写数据库镜像,然后发送给所有slave。


配置slave服务器很简单,只需要在配置文件中加入如下配置
slaveof 192.168.1.1 6379 #指定master的ip和端口


[/size]
Traceback (most recent call last): File "/home/hpe/zj/Rein/tools/test.py", line 144, in <module> main() File "/home/hpe/zj/Rein/tools/test.py", line 140, in main runner.test() File "/home/hpe/anaconda3/envs/rein/lib/python3.11/site-packages/mmengine/runner/runner.py", line 1823, in test metrics = self.test_loop.run() # type: ignore ^^^^^^^^^^^^^^^^^^^^ File "/home/hpe/anaconda3/envs/rein/lib/python3.11/site-packages/mmengine/runner/loops.py", line 462, in run for idx, data_batch in enumerate(self.dataloader): File "/home/hpe/anaconda3/envs/rein/lib/python3.11/site-packages/torch/utils/data/dataloader.py", line 633, in __next__ data = self._next_data() ^^^^^^^^^^^^^^^^^ File "/home/hpe/anaconda3/envs/rein/lib/python3.11/site-packages/torch/utils/data/dataloader.py", line 1345, in _next_data return self._process_data(data) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/hpe/anaconda3/envs/rein/lib/python3.11/site-packages/torch/utils/data/dataloader.py", line 1371, in _process_data data.reraise() File "/home/hpe/anaconda3/envs/rein/lib/python3.11/site-packages/torch/_utils.py", line 644, in reraise raise exception RuntimeError: Caught RuntimeError in DataLoader worker process 0. Original Traceback (most recent call last): File "/home/hpe/anaconda3/envs/rein/lib/python3.11/site-packages/torch/utils/data/_utils/worker.py", line 308, in _worker_loop data = fetcher.fetch(index) ^^^^^^^^^^^^^^^^^^^^ File "/home/hpe/anaconda3/envs/rein/lib/python3.11/site-packages/torch/utils/data/_utils/fetch.py", line 51, in fetch data = [self.dataset[idx] for idx in possibly_batched_index] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/hpe/anaconda3/envs/rein/lib/python3.11/site-packages/torch/utils/data/_utils/fetch.py", line 51, in <listcomp> data = [self.dataset[idx] for idx in possibly_batched_index] ~~~~~~~~~~~~^^^^^ File "/home/hpe/anaconda3/envs/rein/lib/python3.11/site-packages/mmengine/dataset/dataset_wrapper.py", line 171, in __getitem__ return self.datasets[dataset_idx][sample_idx] ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^ File "/home/hpe/anaconda3/envs/rein/lib/python3.11/site-packages/mmengine/dataset/base_dataset.py", line 410, in __getitem__ data = self.prepare_data(idx) ^^^^^^^^^^^^^^^^^^^^^^ File "/home/hpe/anaconda3/envs/rein/lib/python3.11/site-packages/mmengine/dataset/base_dataset.py", line 793, in prepare_data return self.pipeline(data_info) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/hpe/anaconda3/envs/rein/lib/python3.11/site-packages/mmengine/dataset/base_dataset.py", line 60, in __call__ data = t(data) ^^^^^^^ File "/home/hpe/anaconda3/envs/rein/lib/python3.11/site-packages/mmcv/transforms/base.py", line 12, in __call__ return self.transform(results) ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/hpe/anaconda3/envs/rein/lib/python3.11/site-packages/mmseg/datasets/transforms/formatting.py", line 72, in transform img = to_tensor(img).contiguous() ^^^^^^^^^^^^^^ File "/home/hpe/anaconda3/envs/rein/lib/python3.11/site-packages/mmcv/transforms/formatting.py", line 31, in to_tensor return torch.from_numpy(data) ^^^^^^^^^^^^^^^^^^^^^^ RuntimeError: Numpy is not available
03-08
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值