您好,欢迎访问一九零五行业门户网

redis复制碰到的问题有哪些

长时间未能看到数据同步,可能导致误以为复制功能失效或配置错误,这时可以考虑使用salveof命令。其实不用担心,有两种方法可以确定是否正在建立复制。
在创建redis复制是,一开始可能会发现slave长时间不开始同步数据,可能数据量太大,导致了master在dump数据慢,此时可以在master上执行top -p ${pgrep -d,redis-sever}命令,就可以看到dump的过程。
[root@img1_u ~]# top -p $(pgrep -d, redis-server)top - 14:06:24 up 54 days, 6:13, 1 user, load average: 1.18, 1.32, 1.20tasks: 2 total, 1 running, 1 sleeping, 0 stopped, 0 zombiecpu(s): 15.2%us, 1.7%sy, 0.6%ni, 81.9%id, 0.2%wa, 0.0%hi, 0.4%si, 0.0%stmem: 24542176k total, 22771848k used, 1770328k free, 2245720k buffersswap: 524280k total, 0k used, 524280k free, 4369452k cached pid user pr ni virt res shr s %cpu %mem time+ command21619 root 20 0 5654m 5.4g 388 r 99.9 23.0 0:23.70 redis-server 1663 root 20 0 5654m 5.4g 1068 s 15.3 23.0 5042:31 redis-server
redis-server是单进程的,现在通过top命令查看已经有2个进程,因为之前提到的,redis在建立复制的时候,会在主服务上执行bgsave命令,fork一个子进程,dump出rdb文件。先完成主数据库的转储,再将快照文件传输到从数据库
方法二:通过rdb_bgsave_in_progress标识
进入master的redis-cli
127.0.0.1:6381> info persistence# persistenceloading:0current_cow_size:0current_cow_size_age:0current_fork_perc:0.00current_save_keys_processed:0current_save_keys_total:0rdb_changes_since_last_save:0rdb_bgsave_in_progress:0 ##这个表示没有rdb_last_save_time:1648953406rdb_last_bgsave_status:okrdb_last_bgsave_time_sec:0rdb_current_bgsave_time_sec:-1rdb_last_cow_size:311296aof_enabled:0aof_rewrite_in_progress:0aof_rewrite_scheduled:0aof_last_rewrite_time_sec:-1aof_current_rewrite_time_sec:-1aof_last_bgrewrite_status:okaof_last_write_status:okaof_last_cow_size:0module_fork_in_progress:0module_fork_last_cow_size:0
当rdb_bgsave_in_progress的值为1时,表示主服务器正在执行后台保存命令(bgsave)。rdb_current_bgsave_time_sec指示了bgsave命令的已执行时间。由于master服务器上默认不开启rdb和aof日志,如果rdb_bgsave_in_progress为1,那么就可以肯定由于复制原因发送一个bgsave指令dump出rdb文件。
以上就是redis复制碰到的问题有哪些的详细内容。
其它类似信息

推荐信息