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) |