Безопасно ли сбрасывать определенный ключ фильтра Блума Redis в другую базу данных, например mongodb?

Причина, по которой я хочу это сделать, заключается в том, что у нас много холодных данных, и это требует много памяти.

Я попробовал сервер Redis v5.0.8, и сервер сломался, как описано здесь. Redis Bloom Issue#672 . Я также попробовал v=6.2.13 последнюю версию redis/redis-stack-server, и он, кажется, работает, но я Я не уверен, есть ли в нем какие-то скрытые проблемы, и на самом деле мы используем версию 5.0.8 в производстве. Итак, я хочу знать:

  • Безопасно ли сбрасывать фильтр Блума в другие базы данных, такие как MongoDB, и восстанавливать его?
  • Могу ли я сбросить и загрузить их между разными версиями Redis?

Ниже приведен псевдокод, который я использовал для тестирования:

      items := bson.A{}
var iterPointer int64 = 0
for {
    iter, data, err := rb.BfScanDump(key, iterPointer)
    iterPointer = iter
    if err != nil {
        return items, err
    }
    if iter == 0 {
        break
    }

    items = append(items, bson.M{"iter": iter, "data": hex.EncodeToString(data)})
}

// then store it in Mongo, and read the items out and hex.DecodeString(data) to restore it.

Любое предложение или помощь будут оценены по достоинству!

0 ответов

Другие вопросы по тегам