データ型やアルゴリズム、計算量について知っておく事は、プログラマーにとってとても大切なことです。といろんなところで言われていますが、そんなの知らなくってもお仕事できるもんねー、というのも、まあ、たしかにそうですね、という感じはあります。でも、データ型と計算量のことを知らないでいると、カジュアルにスロークエリを吐いてしまったり、単純な集計のはずなのに6時間動き続けて返ってこない……のようなスクリプトを書いてしまったりすることがあるので、やっぱり、プログラマーにとってデータ型やアルゴリズム、計算量の基本を知っているというのは、とても大切なことなんじゃないかな、とわたしは思っています。
でもでも、やっぱり計算量の話とかって、とっつきづらいですよね。「でもさー。わたし、文系なんだよね。なんか計算量がどうこうとかいうひとたちって数式でしゃべるじゃん。log とか? アクセスログかって思うじゃんね。日本語でしゃべれって感じだよね」みたいな感じですよね。わたしも文系卒なので、そんな気持ちはよくわかります(まあ、数式でしゃべるというのは、それがきちんと共通言語として通用する人たちの間では、曖昧な日本語なんかよりもずっとわかりやすい、というのはあるので、それを使うのがほんらいはよいのだけれど)。
この文書は、そんなひとたち(つまり、昔の自分)にもわかるように書きたいな、というのが狙いで書かれた、データ型と計算量の文書です。Redis がちょうどすごくよい題材なので、Redis を題材に、データ型と計算量について、学んで行ってみましょう。