Maison  >  Article  >  base de données  >  Quels sont les problèmes rencontrés dans la réplication Redis ?

Quels sont les problèmes rencontrés dans la réplication Redis ?

WBOY
WBOYavant
2023-05-28 22:43:321282parcourir

Ne pas voir la synchronisation des données pendant une longue période peut conduire à croire à tort que la fonction de réplication n'est pas valide ou que la configuration est incorrecte. Dans ce cas, vous pouvez envisager d'utiliser la commande salveof. Ne vous inquiétez pas, il existe deux manières de déterminer si la réplication est en cours d'établissement.

Lors de la création d'une réplication Redis, vous constaterez peut-être que l'esclave ne commence pas à synchroniser les données pendant une longue période. La quantité de données peut être trop importante, ce qui ralentit le transfert des données par le maître. top -p ${pgrep -d sur la commande master , redis-sever}, vous pouvez voir le processus de vidage.

[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 est un processus unique. Vous pouvez maintenant vérifier qu'il y a 2 processus via la commande top Car comme mentionné précédemment, lorsque redis établira la réplication, il exécutera la commande bgsave sur le service principal, créera un processus enfant. et dump Exportez le fichier RDB. Terminez d'abord le vidage de la base de données maître, puis transférez le fichier d'instantané vers la base de données esclave

Méthode 2 : entrez le redis-cli du maître via l'identifiant 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

Lorsque la valeur de rdb_bgsave_in_progress est 1, cela signifie que le serveur principal exécute une commande de sauvegarde en arrière-plan (bgsave). rdb_current_bgsave_time_sec indique l'heure d'exécution de la commande bgsave. Étant donné que les journaux RDB et AOF ne sont pas activés par défaut sur le serveur maître, si rdb_bgsave_in_progress vaut 1, vous pouvez alors certainement envoyer une commande bgsave pour vider le fichier RDB pour des raisons de réplication.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer