タグ

Redisに関するakatakunのブックマーク (22)

  • MongoDBの様なNoSQLに勢いがあるのは何故ですか?SQLと比べてどんな利点や欠点がありますか? - Quora

    回答 (3件中の1件目) ハイプサイクルという概念をGartnerグループが提唱してまして、様々な流行りスタリのサイクルを分析する標準的な方法となっています。 ハイプとは過度な期待や熱狂を意味する言葉です。一発屋芸人の人気のカーブみたいなもので、テツandトモみたいに安定する場合と、消えていくものがあります。芸人ではありませんがDA PUMPは一茶の人間性もありまして、次は厳しいけど定着すると思っています。 なんだかのトリガーで評価が上がり始め、ピークを迎える。その後評価が下がっていき、底を打つと少し上がって定着するという経過をたどるとしています。これと同じモデルで、流行りのハイテク...

    MongoDBの様なNoSQLに勢いがあるのは何故ですか?SQLと比べてどんな利点や欠点がありますか? - Quora
    akatakun
    akatakun 2019/09/10
    ただの水平分散というのはベストケースでO(n)の性能しか出ず、アムダールの法則により、かけたコストあたりの見返りは漸減していく,ナイーブ,ブルートフォース,O(n)の問題をO(log n)の問題にするのが真髄
  • 『Redisのトランザクションとパフォーマンス』

    前回まででredisのレプリケーションが同期を取る仕組みについてやったので、 今日はRedisのトランザクションとロックにまつわるパフォーマンスの話をしようと思います。 キーワード: 楽観的ロック 悲観的ロック トランザクション 2フェーズコミット MULTI/EXEC ①従来の良くあるRBDのトランザクション リレーショナルデータベースのトランザクションについて簡単におさらいしましょう。RDBは強烈なACID特性を持つのですが、それを特徴づける機能にトランザクションっていうのがあります。 トランザクションとは簡単に言うと、複数の処理をまとめて一つとすることです。 RDBでは BEGIN COMMIT ROLLBACK っていうのがありますが、これをアプリサイドのコードで上手い事使い分けるわけです。疑似コードで言うと try: conn.begin() conn.save('あるSQL文'

    『Redisのトランザクションとパフォーマンス』
    akatakun
    akatakun 2019/08/22
    Redisのトランザクションはqueueにopを溜め込んで、一括実行するからラウンドトリップが少ない(パイプライン処理),整合性の面では何かと穴がある,単にパフォーマンス向上の目的
  • システム開発で得たRedis利用ノウハウ | フューチャー技術ブログ

    こんにちは。初投稿です。 2012年新卒入社の竹内です。入社当時を振り返るとOracle10g,11gを良く利用していおり、データモデリングなどテーブル設計が好きで、2018年4月ぐらいまでRDBとバッチに浸ってました。 さて、現在プロジェクトでRedisを使っているのですが、いままでRDB人間だっただけにKVSやRedisならではの特徴に四苦八苦してます。 苦しんだ分、色々な知見を得ることができているので、その内容をご紹介します! 対象者 Redisの業務システム導入を検討している方 RDBとRedisの違いを知りたい方 現場的なRedisの利用方法を知りたい方 書いてないこと データ型やコマンドなど、HelloWorld的に公式ドキュメントを見て得られる情報 インストールなど、Redisを利用できるまでの手順 フェイルオーバーやバックアップをはじめとする運用に関する内容 データ永続化に

    システム開発で得たRedis利用ノウハウ | フューチャー技術ブログ
    akatakun
    akatakun 2019/08/22
    KEYSが怖いのはsingle threadだから,O(N)
  • ElastiCache for Redis でシングルコアに対応したメトリクス EngineCPUUtilization が追加された - kakakakakku blog

    今月発表された ElastiCache for Redis のリリースで,新 CloudWatch メトリクス EngineCPUUtilization が追加された. Amazon ElastiCache for Redis は、Redis のワークロードへのより良い可視性を達成するために新しい CPU 使用状況メトリックスを導入します 今まで もともと Redis はシングルコアで稼働するため,例えば vCPU 4 を搭載する cache.r4.xlarge を使う場合,CPUUtilization の 25% で「実質 100%」を意味する.この仕様を理解できていないと,Redis の CPU 負荷を見逃してしまう可能性もあり,よく知られていると思う.Black Belt 資料にも記載がある. AWS Black Belt Online Seminar 2017 Amazon Ela

    ElastiCache for Redis でシングルコアに対応したメトリクス EngineCPUUtilization が追加された - kakakakakku blog
    akatakun
    akatakun 2019/08/22
    もともと Redis はシングルコアで稼働するため,例えば vCPU 4 を搭載する cache.r4.xlarge を使う場合,CPUUtilization の 25% で「実質 100%」を意味する
  • 作りながら学ぶ広告サーバ - DSP その1 - NO AD NO LIFE

    はじめに 今回は,近年の広告業界に定着したRTB(Real Time Bidding)について説明しようと思います. 残念ながら筆者はRTBの広告サーバを作ったことがないのですが,GW休みで暇なので詳細まで皆さんと一緒に勉強していきたいので,実際にRTBのシステムを作りながら解説していこうと思います. RTBの広告サーバだけでなく広告サーバ共通で気を付けるポイントもあるので,その辺りにも触れていきます.(大雑把な話は以下のエントリにまとめていますので,興味のある方はご覧下さい) inchom.hatenadiary.jp 今回は,RTBシステムの広告主側プラットフォームであるDSP (Demand Side Platform)について説明していきます. (注意)共通標準であるOpenRTBの仕様をベースに開発を進めるので,現状動いているシステムのRTBの仕様とは異なっていたり,一部私の認識

    作りながら学ぶ広告サーバ - DSP その1 - NO AD NO LIFE
    akatakun
    akatakun 2018/07/26
    Redisに対してWriteをしないようにすることで,リクエストが大量に増加した場合も,Redis Slaveを増やすことで対応できる(ただし、Redisのマスターが単一障害点になり得る)
  • GitHub - luin/medis: 💻 Medis is a beautiful, easy-to-use Mac database management application for Redis.

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - luin/medis: 💻 Medis is a beautiful, easy-to-use Mac database management application for Redis.
    akatakun
    akatakun 2018/03/02
    RedisのGUI
  • 分散型メッセージングミドルウェアの詳細比較 | POSTD

    メッセージキュー について書いている連載の続きとして、今週末は分散型メッセージングを実行するための様々なライブラリを詳細に分析していきたいと思います。今回の分析では、APIの特性、デプロイメントやメンテナンスの容易さ、そしてパフォーマンスの質を含めて2、3種類の異なる側面に着目します。メッセージキューは2つのグループに分類できます。ブローカレス(brokerless)とブローカード(brokered)です。ブローカードなキューはエンドポイント間に何かしらのサーバを挟んでいますが、ブローカレスなメッセージキューは、メッセージ送信の際でも間に何も挾まないP2Pです。 今回分析するのは以下のシステムです。 ブローカレス nanomsg ZeroMQ ブローカード ActiveMQ gnatsd Kafka Kestrel NATS NSQ RabbitMQ Redis 取り掛かりとして、ほぼ間違

    分散型メッセージングミドルウェアの詳細比較 | POSTD
    akatakun
    akatakun 2017/05/19
    ブローカードよりブローカレスのほうが早い,ブローカードは送受信側でほぼ同一のスループットが出る,Redisをメッセンジャーとして使う場合、確実にメッセージを処理してくれる保証はない
  • Redis パフォーマンス向上案 まとめ - Qiita

    とりあえず簡潔にわかりきってることだけ。 ここで記載してるのはちょっと古いバージョンのRedis2.6を使った時の記録。最新情報ではないので注意。 1キーに大量のデータを入れない 簡単にスロークエリ化する。致命傷。 スロークエリを潰す。 Redisだから速いと思った? 思った? ボリューミーなデータを1万件集めてソートしたりすると数秒のクエリが誕生するよ。死ぬよ? ということで、SLOWLOG コマンドを使って、スロークエリを特定して潰しましょう。 インスタンスを増やして、処理を分ける。 Redisはシングルスレッドである。よって、スロークエリがあると瞬殺される。 シングルスレッドならインスタンス増やして、無理やりマルチスレッドにすればいいじゃない という強攻策。 master slave化 get系コマンドでmasterが重い! だったらslave化だ! unix domain sock

    Redis パフォーマンス向上案 まとめ - Qiita
    akatakun
    akatakun 2017/05/19
    1つのキーに大量のデータを入れないようにする,スロークエリはSHOWLOGコマンドで潰す,シングルスレッドなのでインスタンス数増やす,Master・Slave化で読み書き分離,
  • Distributed Locks with Redis

    A distributed lock pattern with Redis Distributed locks are a very useful primitive in many environments where different processes must operate with shared resources in a mutually exclusive way. There are a number of libraries and blog posts describing how to implement a DLM (Distributed Lock Manager) with Redis, but every library uses a different approach, and many use a simple approach with lowe

    akatakun
    akatakun 2017/05/02
    RedisでLock,MySQLのget_lockみたいなもの?
  • INCR

    INCR key Available since: 1.0.0 Time complexity: O(1) ACL categories: @write, @string, @fast, Increments the number stored at key by one. If the key does not exist, it is set to 0 before performing the operation. An error is returned if the key contains a value of the wrong type or contains a string that can not be represented as integer. This operation is limited to 64 bit signed integers. Note:

    akatakun
    akatakun 2017/02/15
    すべてのページビューでINCRとEXPIREを一緒に使用すると、指定された秒数よりも短い間隔で最新のNページビューだけをカウントするカウンタを持つことができます
  • Redisのメモリ使用量がmaxを超えた場合の挙動 - Gaishimo

    Redisのメモリ使用量がmaxを超えた場合の挙動について検証してみた。 環境: version: 2.4.16 Redisではタイムアウト時間を設定したキーは時間を超えると自動で削除され、タイムアウト時間を設定しないと永続的に保存される。 また、メモリの空き領域がなくなった場合、期限のあるものから削除されていく(デフォルトの設定の場合)。 注意すべき点は、期限が設定されていないキーは削除対象にならないということである。 実際にその挙動を検証してみた。 まず、検証しやすいようにメモリの使用可能な量を以下の値に設定しておく(redis.conf) #新たにキーを保存した際にmaxmemoryエラーにならないぎりぎりの値 maxmemory 910KB maxmemory-policy は 以下を設定 #LRUアルゴリズムを使用して期限切れになったセットのキーを削除 maxmemory-pol

    Redisのメモリ使用量がmaxを超えた場合の挙動 - Gaishimo
    akatakun
    akatakun 2017/02/15
    タイムアウトを設定していると自動的に削除される,メモリに空きが亡くなった際もデフォルトでは期限があるものから削除されていく,このとき、期限のないものは削除対象にならない(メモリポリシーの設定次第)
  • Redis 本番障害から学んだコードレビューの勘所

    Redis不適切利用による問題は番運用が始まってから顕在化することが多く、時限爆弾みたいな存在です。事前に防ぐにはコードレビュー段階で叩くしかありません。 Redisはスクリプト言語と相性が良く、適切に利用するとRDBと比較し驚くほど高速なプログラムを組むことができます。昨年尊敬する先輩にコードレビューで斧100くらい(レビューコメント)投げられて血まみれになりつつ学んだことを、まとめて書いてます。概要は『消えても良いデータならRedis』 Redisのメモリが溢れたら... (この話は事実ではなくファンタジーです。) 深夜電話で叩き起こされました。どうやらアクセス障害みたいです。 何人かで実機確認したら、まったくゲームが遊べない。データ不整合怖いのでメンテIN。 ほどなくしてRedisが溢れメモリ不足で新規書き込みが出来なくなっていると判明。サーバのメモリ容量は64GByteでこれ以

    Redis 本番障害から学んだコードレビューの勘所
  • Redis作者自身によるRedisとMemcachedの比較 | Yakst

    Redisの作者antirez氏自らによる、memcachedとRedisの長所短所の比較。特に、Redisを単なるキャッシュ用アプリケーションとしてmemcachedと比較することの間違いと、それぞれの向いている使用方法についての私見。 あなたが私と面識があるなら、私が競合製品があることが悪いと考える人間でないことはご存知でしょう。ユーザーに選択肢があることは当にいいことだと思っていますし、だからこそ他の技術とRedisを比較するようなことはほとんどしませんでした。 しかし、最適なソリューションを選ぶためには、ユーザーは正しく情報を持たねばならないのも確かです。 この記事を書くのは、有名なライブラリであるSidekiqの作者として知られるMike Perhamが、Redisのバックエンドストレージとしての使い方を書いた記事を読んだのがきっかけです。従って、私はMikeがRedisに「反

    Redis作者自身によるRedisとMemcachedの比較 | Yakst
    akatakun
    akatakun 2016/09/15
    Memcached: 完全マルチスレッド,Redis: IOのみマルチスレッド
  • My rake task for clearing Resque queues and stats

    akatakun
    akatakun 2016/06/21
    Resqueをすっからかんにする
  • Redisの監視/分析系ツールまとめ « Rest Term

    Redis関連の監視/データ分析系ツールについてメモしておきます。 随時追記予定。実務で有用なツールが他にありましたら教えていただけると嬉しいです。 環境 CentOS 5.9, Ubuntu 12.04 (x86_64) Redis 2.6.10 (※ CentOSの6.x系への移行は足踏み状態。相当大変ですよね。。) 以下の順に紹介していきます。 Redisコマンド Redis Sentinel Redis Live Redis Faina Redis Sampler redis-top Nagiosプラグイン Zabbixテンプレート Muninプラグイン Cactiプラグイン 最後のCactiプラグイン以外は実際に導入して試してみました。以降、見出しに各プロダクトへのリンクを貼っておきます。 Redisコマンド ツール紹介の前にまずは基から。Redisには監視やデータ解析用途で使

    Redisの監視/分析系ツールまとめ « Rest Term
  • Class: Redis — Documentation for redis (2.2.2)

    Inherits: Object Object Redis show all Includes: MonitorMixin Defined in: lib/redis.rb, lib/redis/client.rb, lib/redis/version.rb, lib/redis/pipeline.rb, lib/redis/hash_ring.rb, lib/redis/subscribe.rb, lib/redis/distributed.rb, lib/redis/connection/ruby.rb, lib/redis/connection/hiredis.rb, lib/redis/connection/registry.rb, lib/redis/connection/synchrony.rb, lib/redis/connection/command_helper.rb D

    akatakun
    akatakun 2015/11/20
    exists(key): キーが存在するか
  • Redisに登録されているキー一覧の取得方法 - Qiita

    redis 127.0.0.1:6379> keys * (empty list or set) redis 127.0.0.1:6379> set hoge1 hoge OK redis 127.0.0.1:6379> set hoge2 hoge OK redis 127.0.0.1:6379> set fuga aaaaaaaaaaaaaaa OK redis 127.0.0.1:6379> keys * 1) "fuga" 2) "hoge1" 3) "hoge2" Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark th

    Redisに登録されているキー一覧の取得方法 - Qiita
    akatakun
    akatakun 2015/11/20
    `keys *`: すべてのキーを取得する
  • redis-cli コマンド操作まとめ - Qiita

    redis-cliを使用したredisのコマンドについてまとめました。 この記事で説明するコマンドは下記の環境で動作確認を行いました。 windows7 (64bit) redis 2.8.19 コマンドの実行例 各コマンド毎に動作確認を行った簡単な実行例を記述しています。 例中にはありませんがその都度flushallコマンドにてキーを削除してから動作確認を行いました。

    redis-cli コマンド操作まとめ - Qiita
  • redis-cliの使い方 - Qiita

    --latencyと似ているが、15秒ごとにレイテンシの経過を見れる点が異なる(Ctl-Cで止めるまで計測し続ける)

    redis-cliの使い方 - Qiita
    akatakun
    akatakun 2015/11/20
    ファイルから読み込んだり、リダイレクトさせればwatchコマンドで監視できる
  • いぬごやねっと

    4geek.net 2024 著作権. 不許複製 プライバシーポリシー

    いぬごやねっと