Referencia rápida

Hoja de referencia de Erlang ETS (Erlang Term Storage)

Guia rapida de referencia para Erlang ETS en Elixir y Erlang: inicializacion de tablas, controles de acceso, tipos de tablas y busqueda.

· Publicado

ETS (Erlang Term Storage) es una base de datos clave-valor en memoria integrada directamente en el entorno de ejecucion Erlang/OTP (BEAM).

🔗 Relacionado: Hoja de referencia del lenguaje Elixir

Inicialización de tablas y operaciones básicas

# Crear una nueva tabla con nombre
table = :ets.new(:user_cache, [:set, :public, :named_table])

# Insertar tuplas en la tabla
:ets.insert(:user_cache, {:user_1, "Alice", 30})
:ets.insert(:user_cache, {:user_2, "Bob", 25})

# Buscar registros por clave
result = :ets.lookup(:user_cache, {:user_1})
# => [{:user_1, "Alice", 30}]

# Eliminar un registro o limpiar la tabla
:ets.delete(:user_cache, :user_1)
:ets.delete_all_objects(:user_cache)

# Destruir la tabla por completo
:ets.delete(:user_cache)

Tipos de tablas (Table Types)

Configure la semantica de la tabla mediante opciones de creacion:

Type Duplicate Keys Ordering Notes
:set No Unordered Tipo de tabla predeterminado; la clave es el primer elemento; no ordenado
:ordered_set No Ordered Claves ordenadas segun el orden de terminos de Erlang; busqueda O(log N)
:bag Yes Unordered Permite multiples claves identicas, pero no tuplas completamente duplicadas
:duplicate_bag Yes Unordered Permite tuplas completamente duplicadas

Controles de acceso (Access Controls)

  • :protected: Todos los procesos pueden leer; solo el proceso propietario puede escribir (Predeterminado).
  • :public: Cualquier proceso puede leer y escribir concurrentemente.
  • :private: Solo el proceso propietario puede leer y escribir.

Recorrido en tablas :ordered_set (Traversal)

# Funciones de navegacion entre claves
first_key = :ets.first(:user_cache)
next_key  = :ets.next(:user_cache, first_key)
prev_key  = :ets.prev(:user_cache, next_key)
last_key  = :ets.last(:user_cache)

Temas relacionados