Eviction Policy
Redisやmemcachedのデータがあふれたとき、挙動は定義できる。
拒否するか、古いものから捨てるか、使われていないものから捨てるか。LRU、LFU、TTL。どの戦略を選ぶかは設計者が決める。決めなければデフォルトの挙動が適用される。いずれにせよ、あふれたものは何らかの形で処理される。
人間のキャパも似たようなものだと思う。
仕事、私信、健康、人間関係、趣味、学習。全部をメモリに載せておくことはできない。あふれたら何かを捨てなければならない。問題は、人間にはeviction policyが定義されていないことだ。
あふれたとき、何が落ちるかは予測できない。大事なものが残るとは限らない。むしろ緊急度の高いものが居座って、重要だが急ぎではないものが静かに消えていく。気づいたときにはキャッシュミスだ。
Redisなら設定を見直せばいい。maxmemory-policy を変えればいい。人間はそうもいかない。わたしのメモリは常にあふれている。