Snabbreferens

Erlang ETS (Erlang Term Storage) Lathund

Snabbreferens foer Erlang ETS i Elixir och Erlang: tabellinitiering, atkomstkontroller, tabelltyper (set/ordered_set/bag) och sokning.

· Publicerad

ETS (Erlang Term Storage) ar en snabb in-memory nyckel-varde-databas inbyggd direkt i Erlang/OTP-runtime (BEAM).

🔗 Relaterat: Elixir Programmeringsspråk Lathund

Tabellinitiering och grundläggande operationer

# Skapa en ny namngiven tabell
table = :ets.new(:user_cache, [:set, :public, :named_table])

# Infoga tupler i tabellen
:ets.insert(:user_cache, {:user_1, "Alice", 30})
:ets.insert(:user_cache, {:user_2, "Bob", 25})

# Sok efter poster med nyckel
result = :ets.lookup(:user_cache, {:user_1})
# => [{:user_1, "Alice", 30}]

# Ta bort post eller rensa tabellen
:ets.delete(:user_cache, :user_1)
:ets.delete_all_objects(:user_cache)

# Forstor tabellen helt ur minnet
:ets.delete(:user_cache)

Tabelltyper (Table Types)

Konfigurera tabellbeteende via skapandealternativ:

Type Duplicate Keys Ordering Notes
:set No Unordered Standardtabelltyp; nyckeln ar forsta elementet; oordnad
:ordered_set No Ordered Nycklar sorterade i Erlang term-ordning; O(log N) uppslagning
:bag Yes Unordered Tillater flera identiska nycklar, forbjuder identiska tupler
:duplicate_bag Yes Unordered Tillater helt identiska tupler

Åtkomstkontroller (Access Controls)

  • :protected: Alla processer kan lasa; endast agarprocessen kan skriva (Standard).
  • :public: Vilken process som helst kan lasa och skriva samtidigt.
  • :private: Endast agarprocessen kan lasa och skriva.

Traversering pa :ordered_set (Traversal)

# Navigeringsfunktioner foer nycklar
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)

Relaterade ämnen