タグ

Redisに関するTomato-360のブックマーク (4)

  • Redisでアクセスランキングを実装

    ニュースサイトのサイドメニューでよく見かける「アクセスの多かった記事」のようなランキングを Redis のデータ型 Sorted Set で実装する方法をメモ。 東洋経済の例 Redis の Sorted Set を使ったアクセスランクの表現 Redis のデータ型 sorted set は文字通り順序付けられた集合。 key 単位で集合を定義でき、各メンバーはスコアを持ち、スコアによって集合内で順位付けられる。 メンバーを記事、スコアをアクセス数とみなして、アクセスランクを表現する。 日別ランキングであれば下図のようになる。 週別ランキングであれば下図のようになる。 スコアの大きい順(=アクセスの多い順)に並べればアクセスランキングの完成となる。 Sorted Set の操作 次にアクセスされた時の Sorted Set の操作を考える。 キーは YYYYMMDD で持ち、アクセスされる

    Redisでアクセスランキングを実装
  • IBM BluemixのRedisをつかってみる

    概要 Slack接続用のhubotをBluemix上で動かし、hubotのデータ保存先としてRedisを使ってみた手順を紹介します。 BluemixのRedisは実験的なリリースのようですが、2015年8月1日現在、無料で利用できます。 事前準備 以降の手順は、Node.js導入済みで、cfコマンドでBluemixにログイン済みの想定で記載しています。 それぞれの手順については以下のサイト等が参考になります。 IBM Bluemixへの登録 IBM developerWorks 日語版 : IBM Bluemix CFコマンドのインストール CloudFoundry の cf コマンドラインツールをインストールする IBM Bluemixへのログイン Cloud Foundry V2系サービス(Cloudn PaaS, Bluemix)にRailsアプリをデプロイする Bluemixにh

    IBM BluemixのRedisをつかってみる
  • Heroku Redis は初期設定で利用してはならない - ボクココ

    無料でそれなりなメモリとコネクション数を確保できる Heroku Redis。最近できたばかりのアドオンで情報がなかなか出回ってないが、ここに落とし穴があるので利用する場合は注意。 注意点は以下の2点だ。 アイドル状態のコネクションをデフォルトではKillしない Heroku Redis は アイドル状態のコネクションをデフォルトではKillしない。これはどういうことかというと、つなぎっぱなしになって、最終的に限界である20コネクションに達し、アプリケーション全体が落ちる、ということが起きる。 しかもこの復旧はなかなか大変で、コマンド経由でRedisを再起動ということができないのでびっくりすることになる。対応するなら、一度Redisアドオンを削除し、再度追加する、といったところか。もちろん Redisに保存していたデータは全て消える。 そんなことにならないようにHeroku Redisを入

    Heroku Redis は初期設定で利用してはならない - ボクココ
  • 巨大レコードのページネーション用gemを作った - PartyIX

    Railsにおいて,kaminariやwill_paginateのようなページネーションライブラリは非常に強力だ. というか,あまりページネーションというものを意識せずとも使えてしまうので,便利だ. ページネーション時のカウントクエリが重い 便利ではあるのだが,すべての場合において無敵なわけではない. 複雑なJOIN を繰り返すことによりインデックスが効かなくなった状態で,レコード数が大量にあるような場合.そんなときに,これらのページネーションを使っていると,重くなる場合がある. ページネーションライブラリは,ページの下部にページネーションのビューを表示している. そして,ここにはラストページの番号が書かれている. この数字は,ページネーションライブラリ内部でカウントクエリを発行して,条件に合致するレコード数をカウントしている. 複雑で重いクエリの場合,このカウントクエリが非常に重くなって

    巨大レコードのページネーション用gemを作った - PartyIX
  • 1