github.com/e154/smart-home@v0.17.2-0.20240311175135-e530a6e5cd45/doc/content/ru/docs/javascript/storage.md (about)

     1  
     2  ---
     3  title: "Временное хранилище"
     4  linkTitle: "storage"
     5  date: 2021-11-19
     6  description: >
     7  
     8  ---
     9  
    10  В проекте **Smart Home** предоставляется `in memory` хранилище, которое позволяет хранить и кэшировать произвольные значения 
    11  в памяти. Значения также периодически архивируются на диск каждую минуту. 
    12  
    13  {{< alert color="success" >}}Функция доступна в любом скрипте системы.{{< /alert >}}
    14  
    15  Для работы с хранилищем доступны следующие методы через объект "Storage":
    16  
    17  1. `push(key, value)`: Этот метод используется для добавления значения в хранилище. Вы передаете ключ `key` и значение `value`,
    18  2. которое будет сохранено в памяти. Пример использования:
    19  
    20  ```javascript
    21  Storage.push('temperature', 25.5);
    22  ```
    23  
    24  2. `getByName(key)`: Данный метод позволяет получить значение из хранилища по указанному ключу `key`. Если значение найдено в
    25  3. памяти, оно будет возвращено. Пример использования:
    26  
    27  ```javascript
    28  const temperature = Storage.getByName('temperature');
    29  console.log(temperature);
    30  ```
    31  
    32  3. `search(key)`: Этот метод выполняет поиск значения по ключу `key`. Сначала он ищет значение в памяти, и если не находит, 
    33  4. производит поиск в базе данных. Результат поиска возвращается. Пример использования:
    34  
    35  ```javascript
    36  const result = Storage.search('temperature');
    37  console.log(result);
    38  ```
    39  
    40  4. `pop(key)`: Данный метод удаляет значение из хранилища по указанному ключу `key`. Если значение найдено и удалено, метод 
    41  5. возвращает удаленное значение. Пример использования:
    42  
    43  ```javascript
    44  const removedValue = Storage.pop('temperature');
    45  console.log(removedValue);
    46  ```
    47  
    48  Методы объекта "Storage" предоставляют возможность добавления, получения, поиска и удаления значений из `in memory` хранилища.
    49  Вы можете использовать это хранилище для временного хранения данных в памяти, с возможностью сохранения на диск и выполнения 
    50  эффективного поиска значений.
    51  
    52  ----------------
    53  
    54  ### Работа с хранилищем
    55  ```coffeescript
    56  Storage
    57    .push(key, value)
    58    .getByName(key)
    59    .search(key)
    60    .pop(key)
    61  ```
    62  
    63  |  значение  | описание  |
    64  |-------------|---------|
    65  | push |    поместить значение в хранилище по ключу `key`  |
    66  | getByName | получить значение из хранилища по ключу `key` |
    67  | search | поиск значения по ключу `key` |
    68  | pop | удаление записи |
    69  
    70  ----------------
    71  
    72  ### пример кода
    73  
    74  ```coffeescript
    75  # Storage
    76  # ##################################
    77  
    78  foo =
    79    'bar': 'bar'
    80  
    81  value = JSON.stringify foo
    82  
    83  # save var
    84  Storage.push 'foo', value
    85  
    86  # get exist var
    87  value = Storage.getByName 'foo'
    88  
    89  # search
    90  list = Storage.search 'bar'
    91  
    92  Storage.pop 'foo'
    93  ```