状況
DBから取得したModelをRedisにキャッシュするためにシリアライズしたかった。
環境
Elixir 1.3.1
解決方法
シリアライズには:erlang.binary_to_term/1
を使う。
model = App.Repo.get(App.Post, id)
:erlang.binary_to_term(model)
デシリアライズには:erlang.term_to_binary/1
を使う。
model = :erlang.term_to_binary(serialized_data)
やっていることは、erlangで利用されているETFに変換している模様。これについてはしっかり理解できていないので、どこかのタイミングで理解したい。