Γρήγορη αναφορά

Φύλλο οδηγιών Erlang ETS (Erlang Term Storage)

Γρήγορος οδηγός αναφοράς για το Erlang ETS σε Elixir και Erlang: προετοιμασία πινάκων, έλεγχοι πρόσβασης, τύποι πινάκων και αναζήτηση.

· Δημοσιεύτηκε

Το ETS (Erlang Term Storage) είναι μια βάση δεδομένων κλειδιού-τιμής στη μνήμη ενσωματωμένη στο Erlang/OTP (BEAM).

🔗 Σχετικά: Φύλλο οδηγιών γλώσσας Elixir

Προετοιμασία πίνακα και βασικές λειτουργίες

# Δημιουργια νεου επωνυμου πινακα
table = :ets.new(:user_cache, [:set, :public, :named_table])

# Εισαγωγη πλειάδων στον πινακα
:ets.insert(:user_cache, {:user_1, "Alice", 30})
:ets.insert(:user_cache, {:user_2, "Bob", 25})

# Αναζητηση εγγραφων βασει κλειδιου
result = :ets.lookup(:user_cache, {:user_1})
# => [{:user_1, "Alice", 30}]

# Διαγραφη εγγραφης η εκκαθαριση πινακα
:ets.delete(:user_cache, :user_1)
:ets.delete_all_objects(:user_cache)

# Πληρης καταστροφη πινακα
:ets.delete(:user_cache)

Τύποι πινάκων (Table Types)

Διαμόρφωση σημασιολογίας πίνακα μέσω επιλογών δημιουργίας:

Type Duplicate Keys Ordering Notes
:set No Unordered Προεπιλεγμενος τυπος; κλειδι ειναι το πρωτο στοιχειο; μη διατεταγμενο
:ordered_set No Ordered Κλειδια ταξινομημενα κατα σειρα ορων Erlang; O(log N) αναζητηση
:bag Yes Unordered Επιτρεπει πολλαπλα ιδια κλειδια, απαγορευει πανομοιοτυπες πλειαδες
:duplicate_bag Yes Unordered Επιτρεπει πληρως πανομοιοτυπες πλειαδες

Έλεγχοι πρόσβασης (Access Controls)

  • :protected: Ολες οι διεργασιες μπορουν να διαβασουν; μονο ο κατοχος μπορει να γραψει (Προεπιλογη).
  • :public: Οποιαδηποτε διεργασια μπορει να διαβασει και να γραψει ταυτοχρονα.
  • :private: Μονο η κατοχος διεργασια μπορει να διαβασει και να γραψει.

Διάσχιση σε :ordered_set (Traversal)

# Συναρτησεις πλοηγησης κλειδιων
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)

Σχετικά θέματα