Redis ����ͬ�������� Redis Cluster ͬ���������

Redis ����ͬ�������� Redis Cluster ͬ���������

һ��Redis ����ͬ������

Redis ������ͬ��������Ҫ�������ݵĸ��ƺ͸��ؾ��⡣����Ϊȫ��ͬ��������ͬ������ģʽ��

  1. ȫ��ͬ����Full Resynchronization��

    • �����������ӽڵ��״��������ڵ㣬�����Ӹ����ж�ʱ��������¸��ƻ�ѹ��������Repl Backlog����ʧ��
    • ������
      1. �ӽڵ㷢�� PSYNC ��������ͬ����
      2. ���ڵ��ж���Ҫȫ��ͬ����ִ�� BGSAVE ���� RDB ���ա�
      3. ���ڵ㽫 RDB �ļ����͸��ӽڵ㡣
      4. �ӽڵ���վ����ݣ����� RDB �ļ��ָ����ݡ�
      5. ���ڵ㽫���� RDB �ڼ����д������� replication buffer�������͸��ӽڵ㡣
    • �ص������������������������� RDB ���ɺʹ�����ܺ�ʱ�ϳ��������ڵ���ͬ���ڼ��ռ�ö����ڴ档
  2. ����ͬ����Partial Resynchronization��

    • �����������ӽڵ���ݶϿ����������ӣ������ڵ�ĸ��ƻ�ѹ�������Դ��ж����ڼ�����
    • ������
      1. �ӽڵ㷢�Ͱ������ڵ� runid ���������������ƫ������ PSYNC ���
      2. ���ڵ���ƫ�������� repl_backlog ��Χ�����ʹӸ�ƫ������ʼ�����������
      3. �ӽڵ���ղ�ִ����Щ����������ͬ����
    • �ص��������� repl_backlog���ʺ϶�ʱ����߻ָ�������ȫ��ͬ���Ŀ�����

����Redis Cluster ��ͬ������

Redis Cluster ͨ����Ƭʵ�����ݵķֲ�ʽ�洢��ÿ����Ƭ�ڲ���Ȼ�������Ӹ��ƣ�����Ⱥģʽ�»��漰 Gossip Э��͹���ת�ơ�

  1. ���Ӹ�����ÿ�����ڵ��Ӧ 1 �������ӽڵ㣬����ͬ����ʽ����ͨ������ͬ��

  2. ��Ⱥ������ͬ����Gossip Э�飩���ڵ��ͨ�� PING/PONG ��Ϣ������Ⱥ״̬����۷��䡢�ڵ�������ȡ��½ڵ�����ڵ�����ʱ����Ⱥͨ�� Gossip Э���Զ��������ˡ�

  3. ����ת�ƣ�Failover���������ڵ�崻�ʱ���ӽڵ�ͨ�� Raft ѡ���㷨��ѡ��Ϊ�����ڵ㣬�����ڵ����·�ɱ�ָ�������ڵ㡣

����ͬ�����ƵĹؼ�����

  • repl-backlog-size���������ƻ�ѹ��������С��Ӱ������ͬ�����ݴ�ʱ�䡣
  • client-output-buffer-limit slave���������ڵ�Դӽڵ���������������ֹ�ӽڵ㳤ʱ�䲻���ѵ������ڵ��ڴ������
  • min-slaves-to-write�����ڵ�������� N ���ӽڵ�����ʱ�Ž���д�룬��ǿ���ݰ�ȫ�ԡ�
  • repl-diskless-sync������ͬ�������ڵ�ֱ��ͨ�����緢�� RDB��������� I/O��

�ġ��������⼰�Ż�����

  1. ����ͬ���ӳ�

    • ԭ�����ӽڵ㴦�����������ӳ١����ڵ�д��ѹ����
    • �Ż������� repl-backlog-size��ʹ�ø�������磬�������ڵ�ִ�к�ʱ���
  2. �ӽڵ���� Key ����

    • �ص����ӽڵ㲻������ɾ������ Key�����ǵȴ����ڵ㷢�� DEL ����ͬ��ɾ�������ӽڵ��ȡʱ���� Key �Ƿ���ڣ��߼����ڣ���
  3. ����һ���Ա�֤

    • Ĭ����Redis ������һ���ԣ��첽���ƣ���
    • �Ż���ʹ�� WAIT ���������ͻ��ˣ�ֱ������ͬ�������� N ���ӽڵ㡣���ή����������

�ܽ�

  • ȫ��ͬ���������ڳ���ͬ����ʱ����ߣ�����һ����ǿ��������Ӱ���
  • ����ͬ���������ڶ�ʱ������� repl_backlog ���ã���������һ�£�����Ӱ��С��
  • ������������������ repl-backlog-size��������ӽڵ㸴��ƫ�����IJ�ֵ������ͬ���ӳ١�����Ҫǿһ�µij�������ʹ�� WAIT��
 wechat
天生我才必有用