redis incrby
4月 6th, 2013
redis > incrby aaa 1 で 1 増やすキーが無い時は 0 + 1になる。 redis > incrby aaa -5 もできる、マイナスも増える redis > set neighbor:aaa “{‘aaa’,9}” OK redis > sort neighbor:login by nosort get neighbor:* get * 1) “{‘aaa’,9}” 2) “4” redis > incrby aaa 1 (integer) 5 redis > sort neighbor:login by nosort get neighbor:* get * 1) […]
nginx + eval + memcached : check block id
4月 1st, 2013
API認証をどうしようかと memcachedにブロックidを入れて、チェックしようと思います。 1. nginx でmemcachedからデータを取得 ng => 403 ok => 2 2. アプリケーションサーバーへ idが正常 => データを返す + ログをfluentdへ流す => 3, idが不正(桁数や簡単な法則チェックのみ) => memcachedへblockidとして登録。403を返す。 ipチェックもする 3. 正常時 fluentd + redisでidカウンタ 数値が上がったらアラート →異常値→4 4. 異常値確認 異常値だったらmemachedへblockidとして登録 // 別プロセスで定期的にredisをチェック。 これでいけそうです。 /// インストール http://blog.bbtune.com/archives/2412/nginx-exchange-header 以前と同じ方法でrpmを作ります。 https://github.com/agentzh/nginx-eval-module 1.0.3を使わせていただきます。 –add-module=/tmp/nginx/headers-more-nginx-module-0.19rc1\ –add-module=/tmp/nginx/nginx-eval-module-1.0.3\ debugバージョンと2つあるので両方入れておきます。 nginx conf upstream api_server { server 127.0.0.1:30101; […]
fluent-plugin-redis-event-rank | github
3月 26th, 2013
https://github.com/junichi-otake/fluent-plugin-redis-event-rank にコードをあげました。
redis で sortするときstoreしてないのにread only ( slave ) エラー。
3月 20th, 2013
redis > sort 201303_001:all (error) READONLY You can’t write against a read only slave. redis > zrange 201303_001:all 0 100 1) “aaa” 2) “bbb” http://redis.io/topics/replication slaveで重いsortしましょうと書いてあるから使えないはずはないと思うけど、設定かな # Replication role:slave master_host:127.0.0.1 master_port:30110 master_link_status:up master_last_io_seconds_ago:3 master_sync_in_progress:0 slave_priority:100 slave_read_only:1 connected_slaves:0 sorted setだから?テストしないとダメだな・・・ slaveでsortするなんてみんなやってそうだけど、検索してもあまり出ない。。。 read only をはずせば行けるけど slave-read-only no データ的には、万が一slaveに書き込んだとしてもランキングデータだから作り直せば良いだけだけど。たぶん他に手はないかな
redis-ranking sorted set の sort order desc が機能しない。。。
3月 19th, 2013
( redis 2.4ではダメでしたが、2.6は問題なく動きました。) sorted set で スコア昇順に並んでいるので by nosort desc で取得出来ると思っていたらなぜかできない。 SORT sortedsetlist BY nosort SORT sortedsetlist BY nosort DESC どちらも同じ・・・ ZREVRANGE sortedsetlist 0 -1 WITHSCORES とかはちゃんとスコア降順になります。 by nosort DESCは絶対行けると思ってたけどダメだった。。。 zcount を調べてlimitで後ろから順に取るという裏技もあるけど・・・ ZCOUNT sortedsetlist -inf +inf scoreをマイナスで入れるというパターンもあるけど・・・ それが一番分かりやすいかな・・・ と思ったけど2.4じゃなくて 2.6 だと行けるっぽいので 2.6 にしてみました。 scoreでsortできました!ということで sorted setでsort *** get *** を使いたい場合は、2.6が良いみたいです。 predisの書き方。predisのsortの書き方があまりなかったので残しておきます。 predisのところだけ $this->redis = new […]
fluentd pluginを書いてみる。 redis-ranking
3月 18th, 2013
rubyあまり書いたこと無いけど、ちょっと書けば動きそうなので http://docs.fluentd.org/articles/plugin-development#writing-buffered-output-plugins http://documents.mazgi.com/fluentd/doc/devel.html#buffered-output-plugins http://fluentd.org/plugin/ を参考に。 event_id rank_key を設定するくらい。 * rubyは、あまり何も見たこと無いのですが はめ込んだだけなので、普通だとは思いますが、枠がしっかりしているので簡単になんでも作れそうです。 * はめ込んで1回で問題なく動いたので、コードを書いたのは5分くらいでしょうか、サンプル色々見て1時間 + ライブラリの設定がわからず1時間と言う感じです。 out_event_rank.rb class Fluent::EventRankOutput < Fluent::BufferedOutput Fluent::Plugin.register_output(‘event_rank’, self) config_param :host, :string config_param :port, :integer, :default => 30110 config_param :event_id, :string config_param :rank_key, :string def initialize super require ‘redis’ end […]
Redis + predis | memcachedの代わりにRedisを使ってみる。
1月 20th, 2012
http://redis.io http://redis.io/clients memcachedを利用していた表示データをredisにしてみます。 消えても良いのですが、データが出来るまで寂しいので。 daily rankingやpublic activityとか *永続的なmemachedですが、メモリーサイズより大きいデータは扱えないので、あくまでもmemcachedの代替。Virtual Memory機能はあるが非推奨。 1. redis install # yum list redis redis.x86_64 2.0.3-2.el5 epel # yum install redis Installing: redis x86_64 2.0.3-2.el5 epel 303 k config http://redis.io/topics/data-types-intro keyの付け方がフムフム。 » Try to stick with a schema. For instance “object-type:id:field” can be a nice idea, like in “user:1000:password”. I like to use […]