public void removeSubscriberForRedo(String serviceName, String groupName, String cluster) {
        String key = ServiceInfo.getKey(NamingUtils.getGroupedName(serviceName, groupName), cluster);
        synchronized (subscribes) {
            SubscriberRedoData redoData = subscribes.get(key);
            if (null != redoData && !redoData.isExpectedRegistered()) {
                subscribes.remove(key);
            }
        }
    }
@Test
    void testRemoveSubscriberForRedo() {
        ConcurrentMap<String, SubscriberRedoData> subscribes = getSubscriberRedoDataMap();
        assertTrue(subscribes.isEmpty());
        redoService.cacheSubscriberForRedo(SERVICE, GROUP, CLUSTER);
        assertFalse(subscribes.isEmpty());
        redoService.subscriberDeregister(SERVICE, GROUP, CLUSTER);
        redoService.removeSubscriberForRedo(SERVICE, GROUP, CLUSTER);
        assertTrue(subscribes.isEmpty());
    }