Spec-Zone.ru › Redis

BF.SCANDUMP

BF.SCANDUMP
Синтаксис
BF.SCANDUMP key iterator
Доступно в:
Redis Stack / Bloom 1.0.0
Сложность:
O(n), где n — емкость

Начинает инкрементную сохранение bloom-фильтра. Это полезно для больших bloom-фильтров, которые не помещаются в стандартную модель DUMP и RESTORE.

В первый раз при вызове этой команды значение iter должно быть 0. Команда возвращает последовательные пары (iter, data) до (0, NULL) для обозначения завершения.

Параметры

  • key: Имя фильтра
  • iter: Значение итератора; либо 0, либо итератор из предыдущего вызова этой команды

Возвращаемое значение

Массивный ответ из целого ответа (Итератор) и [] (Данные). Итератор передаётся в качестве входных данных при следующем вызове SCANDUMP. Если Итератор равен 0, это означает завершение итерации.

Пара итератор-данные также должна быть передана в LOADCHUNK при восстановлении фильтра.

@example

redis> BF.RESERVE bf 0.1 10
OK
redis> BF.ADD bf item1
1) (integer) 1
redis> BF.SCANDUMP bf 0
1) (integer) 1
2) "\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x02\x00\x00\x00\b\x00\x00\x00\x00\x00\x00\x00@\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x9a\x99\x99\x99\x99\x99\xa9?J\xf7\xd4\x9e\xde\xf0\x18@\x05\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x00"
redis> BF.SCANDUMP bf 1
1) (integer) 9
2) "\x01\b\x00\x80\x00\x04 \x00"
redis> BF.SCANDUMP bf 9
1) (integer) 0
2) ""
redis> FLUSHALL
OK
redis> BF.LOADCHUNK bf 1 "\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x02\x00\x00\x00\b\x00\x00\x00\x00\x00\x00\x00@\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x9a\x99\x99\x99\x99\x99\xa9?J\xf7\xd4\x9e\xde\xf0\x18@\x05\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x00"
OK
redis> BF.LOADCHUNK bf 9 "\x01\b\x00\x80\x00\x04 \x00"
OK
redis> BF.EXISTS bf item1
(integer) 1

код на Python:

chunks = []
iter = 0
while True:
    iter, data = BF.SCANDUMP(key, iter)
    if iter == 0:
        break
    else:
        chunks.append([iter, data])

# Load it back
for chunk in chunks:
    iter, data = chunk
    BF.LOADCHUNK(key, iter, data)

© 2006–2022 Salvatore Sanfilippo
Licensed under the Creative Commons Attribution-ShareAlike License 4.0.
https://redis.io/commands/bf.scandump/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API