Kurzreferenz

Erlang ETS (Erlang Term Storage) Spickzettel

Kurzreferenz fuer Erlang ETS in Elixir und Erlang: Tabelleninitialisierung, Zugriffskontrollen, Tabellentypen (set/ordered_set/bag) und Traversierung.

· Veröffentlicht

ETS (Erlang Term Storage) ist eine robuste In-Memory-Key-Value-Datenbank direkt in der Erlang/OTP-Runtime (BEAM), die nativ in Erlang und Elixir nutzbar ist.

🔗 Verwandt: Elixir Programmiersprache Spickzettel

Tabelleninitialisierung und Basisoperationen

# Neue benannte Tabelle erstellen
table = :ets.new(:user_cache, [:set, :public, :named_table])

# Tupel in Tabelle einfuegen
:ets.insert(:user_cache, {:user_1, "Alice", 30})
:ets.insert(:user_cache, {:user_2, "Bob", 25})

# Datensaetze nach Schluessel abfragen
result = :ets.lookup(:user_cache, {:user_1})
# => [{:user_1, "Alice", 30}]

# Datensatz loeschen oder Tabelle leeren
:ets.delete(:user_cache, :user_1)
:ets.delete_all_objects(:user_cache)

# Tabelle vollstaendig entfernen
:ets.delete(:user_cache)

Tabellentypen (Table Types)

Tabellensemantik ueber Erstellungsoptionen konfigurieren:

Type Duplicate Keys Ordering Notes
:set No Unordered Standard-Tabellentyp; Schluessel ist das erste Element; ungeordnet
:ordered_set No Ordered Schluessel in Erlang-Term-Reihenfolge sortiert; O(log N) Lookup
:bag Yes Unordered Erlaubt mehrfache identische Schluessel, aber keine identischen Tupel
:duplicate_bag Yes Unordered Erlaubt vollstaendig identische Tupel

Zugriffskontrollen (Access Controls)

  • :protected: Alle Prozesse koennen lesen; nur der Besitzer-Prozess kann schreiben (Standard).
  • :public: Jeder Prozess kann gleichzeitig lesen und schreiben.
  • :private: Nur der Besitzer-Prozess kann lesen und schreiben.

Traversierung auf :ordered_set (Traversal)

# Navigationsfunktionen fuer Schluessel
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)

Verwandte Themen