Spec-Zone.ru › Redis

BF.INSERT

BF.INSERT
Синтаксис
BF.INSERT key [CAPACITY capacity] [ERROR error]
  [EXPANSION expansion] [NOCREATE] [NONSCALING] ITEMS item [item
  ...]
Доступно в:
Redis Stack / Bloom 1.0.0
Сложность по времени:
O(k * n), где k — количество хеш-функций, а n — количество элементов

BF.INSERT — это усовершенствованная комбинация команд BF.RESERVE и BF.ADD. Она создаёт новый фильтр, если он не существует, используя соответствующие аргументы (см. BF.RESERVE). Затем все ITEMS добавляются в него.

Параметры

  • key: Имя фильтра
  • item: Один или несколько элементов для добавления. Перед списком элементов для добавления должен стоять ключевое слово ITEMS.

Дополнительные параметры:

  • NOCREATE: (Необязательно) Указывает, что фильтр не должен создаваться, если он ещё не существует. Если фильтр ещё не существует, возвращается ошибка, вместо его автоматического создания. Этот параметр может использоваться в случаях, когда требуется чёткое разделение создания фильтра и его добавления. Не допускается использование NOCREATE вместе с CAPACITY или ERROR.
  • capacity: (Необязательно) Указывает желаемый capacity для создаваемого фильтра. Этот параметр игнорируется, если фильтр уже существует. Если фильтр создаётся автоматически, а этот параметр отсутствует, то используется capacity уровня модуля. См. BF.RESERVE для получения дополнительной информации об этом значении.
  • error: (Необязательно) Указывает error создаваемого фильтра, если он ещё не существует. Если фильтр создаётся автоматически, и error не указан, то используется значение ошибки уровня модуля. См. BF.RESERVE для получения дополнительной информации о формате этого значения.
  • NONSCALING: Запрещает создание дополнительных подфильтров, если достигнута начальная ёмкость. Фильтры без масштабирования требуют немного меньше памяти, чем их масштабируемые аналоги. Фильтр возвращает ошибку, когда capacity достигнута.
  • expansion: Когда capacity достигнута, создаётся дополнительный подфильтр. Размер нового подфильтра — размер последнего подфильтра, умноженный на expansion. Если количество элементов, которые необходимо сохранить в фильтре, неизвестно, рекомендуется использовать expansion 2 или более, чтобы уменьшить количество подфильтров. В противном случае рекомендуется использовать expansion 1, чтобы уменьшить потребление памяти. Значение расширения по умолчанию равно 2.

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

Массив булевых значений (целых чисел). Каждый элемент — либо true, либо false в зависимости от того, был ли соответствующий входной элемент добавлен в фильтр впервые, или он уже существовал.

Примеры

Добавление трёх элементов в фильтр с параметрами по умолчанию, если фильтр ещё не существует:

BF.INSERT filter ITEMS foo bar baz

Добавление одного элемента в фильтр с ёмкостью 10000, если фильтр ещё не существует:

BF.INSERT filter CAPACITY 10000 ITEMS hello

Добавление 2 элементов в фильтр со значением ошибки, если фильтр ещё не существует:

BF.INSERT filter NOCREATE ITEMS foo bar

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

Spec-Zone.ru

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