Kegagalan untuk melihat penyegerakan data untuk masa yang lama boleh membawa kepada kepercayaan yang salah bahawa fungsi replikasi tidak sah atau konfigurasi tidak betul. Dalam kes ini, anda boleh mempertimbangkan untuk menggunakan perintah salveof. Jangan risau, terdapat dua cara untuk menentukan sama ada replikasi sedang diwujudkan.
Apabila membuat replikasi redis, anda mungkin mendapati bahawa hamba tidak mula menyegerakkan data untuk masa yang lama Jumlah data mungkin terlalu besar, menyebabkan induk menjadi lambat dalam membuang data , anda boleh melaksanakan top -p $ pada perintah {pgrep -d,redis-sever}, anda boleh melihat proses pembuangan.
[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.20 Tasks: 2 total, 1 running, 1 sleeping, 0 stopped, 0 zombie Cpu(s): 15.2%us, 1.7%sy, 0.6%ni, 81.9%id, 0.2%wa, 0.0%hi, 0.4%si, 0.0%st Mem: 24542176k total, 22771848k used, 1770328k free, 2245720k buffers Swap: 524280k total, 0k used, 524280k free, 4369452k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 21619 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 ialah satu proses Sekarang anda boleh menyemak bahawa terdapat 2 proses melalui arahan atas Kerana seperti yang dinyatakan sebelum ini, apabila redis mewujudkan replikasi, ia akan melaksanakan perintah bgsave pada perkhidmatan utama dan garpu satu. Subproses, buang fail RDB. Mula-mula selesaikan pembuangan pangkalan data induk, dan kemudian pindahkan fail syot kilat ke pangkalan data hamba
Kaedah 2: Masukkan redis-cli induk melalui pengecam rdb_bgsave_in_progress
127.0.0.1:6381> info Persistence # Persistence loading:0 current_cow_size:0 current_cow_size_age:0 current_fork_perc:0.00 current_save_keys_processed:0 current_save_keys_total:0 rdb_changes_since_last_save:0 rdb_bgsave_in_progress:0 ##这个表示没有 rdb_last_save_time:1648953406 rdb_last_bgsave_status:ok rdb_last_bgsave_time_sec:0 rdb_current_bgsave_time_sec:-1 rdb_last_cow_size:311296 aof_enabled:0 aof_rewrite_in_progress:0 aof_rewrite_scheduled:0 aof_last_rewrite_time_sec:-1 aof_current_rewrite_time_sec:-1 aof_last_bgrewrite_status:ok aof_last_write_status:ok aof_last_cow_size:0 module_fork_in_progress:0 module_fork_last_cow_size:0
Apabila rdb_bgsave_in_progress Apabila nilai ialah 1, ia bermakna pelayan utama sedang melaksanakan arahan simpan latar belakang (bgsave). rdb_current_bgsave_time_sec menunjukkan masa pelaksanaan perintah bgsave. Memandangkan log RDB dan AOF tidak didayakan secara lalai pada pelayan induk, jika rdb_bgsave_in_progress ialah 1, maka anda pasti boleh menghantar arahan bgsave untuk membuang fail RDB atas sebab replikasi.
Atas ialah kandungan terperinci Apakah masalah yang dihadapi dalam replikasi redis?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!