public Mono<Long> deleteGroupMessageSequenceIds(Set<Long> groupIds) {
        if (redisClientManager == null) {
            return PublisherPool.LONG_ZERO;
        }
        Flux<Long> execute = redisClientManager.execute(groupIds, (client, keyList) -> {
            ByteBuf[] keys = new ByteBuf[keyList.size()];
            int i = 0;
            try {
                for (Long groupId : keyList) {
                    ByteBuf buffer = PooledByteBufAllocator.DEFAULT.directBuffer(Long.BYTES);
                    keys[i++] = buffer;
                    buffer.writeLong(groupId);
                }
            } catch (Exception e) {
                ReferenceCountUtil.ensureReleased(keys);
                return Mono.error(e);
            }
            return client.hdel(RedisEntryIdConst.KEY_GROUP_MESSAGE_SEQUENCE_ID_BUFFER,
                    (Object[]) keys);
        });
        return MathFlux.sumLong(execute);
    }
@param senderDeviceType can be null when it is a system message
turms-service/src/main/java/im/turms/service/domain/message/service/MessageService.java