Безопасно ли сбрасывать определенный ключ фильтра Блума 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.
Любое предложение или помощь будут оценены по достоинству!