タグ

2014年10月24日のブックマーク (2件)

  • Redis の expire はいつ実際にデータを消しているのか? - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    expire で指定した時間を過ぎたデータが実際に消されるタイミングはいつなのかということを調べた。 どこから調べたの 公式ドキュメントのexpireのところ から調べた で、どうやって消してるの Redis は expire で指定した時間が過ぎたデータを消すのにふたつの戦略を使ってる。 値が取得されるときに消すよ 値が取得されるときに、その値がすでに expire 過ぎてたら消す。 値が取得されなくても消すよ 値が取得されるときに消す感じだと、たまにしか取得されないデータとかあるいは全然取得されないみたなデータはいつまでも消えなくて困るよね 値が取得されなくても定期的に消そうねって感じで消す。Redis さんは以下のような感じで消してるらしい まずランダムに20個のキーを選ぶ 選んだキーのデータが expire 過ぎてたら消す 25 個より多くの key が expired だったら1

    Redis の expire はいつ実際にデータを消しているのか? - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
    yhara
    yhara 2014/10/24
    こういう記事ありがたい
  • Big Sky :: golang で N 個の chan を同時に待つ

    « C++ 製 micro web framework「crow」を使って lingr の bot 書いてみた。 | Main | Windows でも色付きでログが出せる golang のライブラリ「go-colorable」書いた。 » あと最近の発見と絶望は、C.selectが呼び出せないこと。select中のdefaultでnonblocking相当にできるけど、可変数なfdをselectしたい相当をどう書けばいいんだろうか。 #golang — HiroakiKawai (@kwi) July 28, 2014 reflect.Select を使います。 package main import ( "fmt" "math/rand" "reflect" "sync" "time" ) func multpleSelect(chans []chan bool) (int, bool

    Big Sky :: golang で N 個の chan を同時に待つ
    yhara
    yhara 2014/10/24