Redis��Ƭ��Ⱥ(Clusterģʽ)�£�Lua�ű����ܻ�ʧЧ�������������Ҫԭ�򼰽������

��Redis��Ƭ��Ⱥ(Clusterģʽ)�£�Lua�ű����ܻ�ʧЧ�������������Ҫԭ�򼰽���������£�

��Redis��Ƭ��Ⱥ��Clusterģʽ����ʹ��Lua�ű�ʱ��ȷʵ���ܻ�����һЩ���⣬��Ҫ������Redis Cluster�����������Lua�ű�ֻ���ڵ����ڵ���ִ�У��������漰�ļ�����λ��ͬһ����Ƭ��hash slot���ڡ������Ƕ������������ϸ���ͼ���������Ľ�һ��������

����ԭ��

  1. ������ͬһ����Ƭ��
    Redis Clusterͨ����ϣ��Ƭ�����ݷֲ�����ͬ�Ľڵ��ϡ�ÿ������������key�����һ����ϣֵ��Ȼ��ӳ�䵽�ض��ķ�Ƭ�ϡ����һ��Lua�ű����Է��ʶ����ͬ��Ƭ�ļ�����ô�ýű����޷���Redis Cluster��ִ�С�

  2. ��ڵ����������
    Redis Cluster��֧�ֿ�ڵ��ԭ�Ӳ���������ζ��һ��Lua�ű����ܿ����ڵ�ִ�С�������Lua�ű������õļ�����λ��ͬһ���ڵ��ϡ�

  3. �ű�����������
    Lua�ű���Redis�п���ͨ��EVALSHA����ʹ��SHA1ժҪ��ִ�У���������ܡ�Ȼ�����ڼ�Ⱥ�����У��ű���Ҫ��ÿ���ڵ��ϵ������أ���Ϊ�ű������Զ��ڼ�Ⱥ�ڵ��ͬ����

�������

  1. ȷ�����м���ͬһ����Ƭ��

    • ʹ��Redis��hash tags���ܡ�ͨ���ڼ����а���{}��ָ��һ���ּ�����Ϊhash tag��Redis��ʹ���ⲿ���������ϣֵ���Ӷ�ȷ��������ͬhash tag�ļ��ᱻӳ�䵽ͬһ����Ƭ�ϡ�
  2. ʹ��EVALSHA�ı�ͨ������

    • �����нڵ���Ԥ�ȼ��ؽű���ʹ��SCRIPT LOAD������ÿ���ڵ��ϼ��ؽű������洢���ص�SHA1ժҪ��Ȼ����Ӧ����ʹ��EVALSHA����ִ�нű���
  3. ǿ�Ƽ����䵽ͬһ��Ƭ��

    • ����hash tags����һ�ֱ�����ʽ��ͨ��ȷ�������а�����ͬ��hash tag���֣�����ǿ����Щ�������䵽ͬһ����Ƭ��
  4. ���ڱ�����Ƭ�IJ�����

    • ��������ֳɶ���ű���ÿ���ű��ڸ��Եķ�Ƭ��ִ�С�Ȼ���ڿͻ��˾ۺ���Щ�ű��Ľ����
  5. ʹ�ø߼��ͻ��˿���

    • ��Щ�߼�Redis�ͻ��˿⣨��Redisson���ṩ�˶Լ�Ⱥģʽ��Lua�ű���֧�ֺ��Ż������Լ��ڼ�Ⱥ������ʹ��Lua�ű��Ĺ��̡�

���ʵ��

  • ��ƽű�ֻ������������ʹ��hash tags�����DZ�����Ƭ�������򵥷�����
  • �����ڽű���ʹ�������ȡ��ȫ��״̬������Լ��ٽű��ĸ����Ժ�DZ�ڵĴ���
  • Ԥ�������нڵ���س��ýű����������߽ű�ִ�е�Ч�ʡ�
  • ����ʹ���������ز������Lua�ű�����ijЩ����£�ʹ��Redis���������ز��������MULTI/EXEC��������һ�����е����������

�������

  • ʹ��Redis Modules��Redis Modules�ṩ����չRedis���ܵķ�ʽ�������ڼ�Ⱥ�������ṩ�����ӵIJ�����
  • �ڿͻ���ʵ�ָ����߼������Lua�ű��ڼ�Ⱥ�е�����̫�࣬���Կ��ǽ����ӵ��߼��Ƶ��ͻ���ʵ�֡�
  • �����Ƿ������Ҫ��Ⱥģʽ����ijЩ����£�����ֻ��ҪRedis���ڱ�ģʽ��Sentinel�����ṩ�߿����Ժ͹���ת�ƣ������������ķ�Ƭ��Ⱥ��
 wechat
天生我才必有用