39 lines
3.0 KiB
Markdown
39 lines
3.0 KiB
Markdown
|
---
|
|||
|
title: Erlang Term Storage
|
|||
|
localeTitle: Срок хранения Erlang
|
|||
|
---
|
|||
|
## Срок хранения Erlang
|
|||
|
|
|||
|
Erlang Term Storage, обычно сокращенная как ETS, представляет собой встроенную в OTP базу данных, она доступна в Elixir и является мощной альтернативой решениям Redis, когда приложение работает на одном узле.
|
|||
|
|
|||
|
## Быстрый старт
|
|||
|
|
|||
|
Для создания таблицы ETS сначала необходимо инициализировать таблицу `tableName = :ets.new(:table_otp_name, [])` , как только вы активируете таблицу, которую вы можете: вставлять данные, значения поиска, удалять данные и т. Д.
|
|||
|
|
|||
|
### Демо-версия ETS в IEX
|
|||
|
|
|||
|
```elixir
|
|||
|
iex(1)> myETSTable = :ets.new(:my_ets_table, [])
|
|||
|
#Reference<0.1520230345.550371329.65846>
|
|||
|
iex(2)> :ets.insert(myETSTable, {"favoriteWebSite", "freeCodeCamp"})
|
|||
|
true
|
|||
|
iex(3)> :ets.insert(myETSTable, {"favoriteProgrammingLanguage", "Elixir"})
|
|||
|
true
|
|||
|
iex(4)> :ets.i(myETSTable)
|
|||
|
<1 > {<<"favoriteProgrammingLanguage">>,<<"Elixir">>}
|
|||
|
<2 > {<<"favoriteWebSite">>,<<"freeCodeCamp">>}
|
|||
|
EOT (q)uit (p)Digits (k)ill /Regexp -->
|
|||
|
```
|
|||
|
|
|||
|
## Упорство
|
|||
|
|
|||
|
Таблицы ETS не являются постоянными и уничтожаются, как только процесс, которому он принадлежит, заканчивается. Если вы хотите сохранить данные настойчиво, рекомендуется использовать традиционную базу данных и / или файловое хранилище.
|
|||
|
|
|||
|
## Случаи применения
|
|||
|
|
|||
|
Таблицы ETS обычно используются для кэширования данных в приложении, например, данные учетной записи, полученные из базы данных, могут храниться в таблице ETS, чтобы уменьшить количество запросов к базе данных. Другим вариантом использования является ограничение скорости использования функций в веб-приложении. Быстрая скорость чтения и записи ETS делает его отличным для этого. Таблицы ETS являются мощным инструментом для разработки высококонвертируемых веб-приложений при минимально возможной стоимости оборудования.
|
|||
|
|
|||
|
#### Дополнительная информация:
|
|||
|
|
|||
|
* [elixir-lang.org | Библиотеки Erlang (ETS)](https://elixir-lang.org/getting-started/erlang-libraries.html#erlang-term-storage)
|
|||
|
* [erlang.org | ETS](http://erlang.org/doc/man/ets.html)
|