Archive for the ‘redis’ Category

 

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) […]

Read full article | コメントは受け付けていません。

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; […]

Read full article | コメントは受け付けていません。

fluent-plugin-redis-event-rank | github

3月 26th, 2013

https://github.com/junichi-otake/fluent-plugin-redis-event-rank にコードをあげました。

Read full article | コメントは受け付けていません。

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に書き込んだとしてもランキングデータだから作り直せば良いだけだけど。たぶん他に手はないかな

Read full article | コメントは受け付けていません。

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 […]

Read full article | コメントは受け付けていません。

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   […]

Read full article | コメントは受け付けていません。

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 […]

Read full article | コメントは受け付けていません。