Référence rapide

Aide-mémoire Erlang ETS (Erlang Term Storage)

Guide de référence rapide pour Erlang ETS dans Elixir et Erlang : création de tables, contrôle d'accès, types de tables (set/ordered_set/bag) et parcours.

· Publié le

ETS (Erlang Term Storage) est une base de donnees cle-valeur en memoire integree directement dans le runtime Erlang/OTP (BEAM).

🔗 Connexe : Aide-memoire Langage Elixir

Initialisation et opérations de base

# Creer une nouvelle table nommee
table = :ets.new(:user_cache, [:set, :public, :named_table])

# Inserer des tuples dans la table
:ets.insert(:user_cache, {:user_1, "Alice", 30})
:ets.insert(:user_cache, {:user_2, "Bob", 25})

# Rechercher des enregistrements par cle
result = :ets.lookup(:user_cache, {:user_1})
# => [{:user_1, "Alice", 30}]

# Supprimer un enregistrement ou vider la table
:ets.delete(:user_cache, :user_1)
:ets.delete_all_objects(:user_cache)

# Detruire completement la table
:ets.delete(:user_cache)

Types de tables (Table Types)

Configurer la semantique de la table via les options de creation :

Type Duplicate Keys Ordering Notes
:set No Unordered Type par defaut ; la cle est le premier element ; non ordonne
:ordered_set No Ordered Cles triees selon l'ordre des termes Erlang ; recherche O(log N)
:bag Yes Unordered Autorise les cles dupliquees, refuse les tuples parfaitement identiques
:duplicate_bag Yes Unordered Autorise les tuples parfaitement identiques

Contrôles d'accès (Access Controls)

  • :protected: Tous les processus peuvent lire ; seul le proprietaire peut ecrire (Par defaut).
  • :public: Tout processus peut lire et ecrire simultanement.
  • :private: Seul le processus proprietaire peut lire et ecrire.

Parcours sur :ordered_set (Traversal)

# Fonctions de navigation entre cles
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)

Sujets associés