タグ

redisに関するhohoho_ho2005のブックマーク (221)

  • 手を動かして学ぶ Redis 入門

    会社でRedisを使っているサービスがあり、そのメンテナーになった。RedisがIn-Memory Databaseということは知っていたのだが、その他の特徴や操作方法などまったくわからないので、チュートリアルを中心に手を動かしながら学んだことをまとめていく。またNode.jsからRedisにアクセスする方法もあわせて紹介する。 Redis の特徴 Redisはメモリー上にデータを保存するKey-Value型のNoSQLデータベースのひとつ。用途はデータベースだけにとどまらず、キャッシュやメッセージブローカーとしても利用される。 In-Memory Database RedisはIn-Memory Databaseなので、On-Disk Databaseと比べ非常に高速に動作する。ちなみにIn-Memory DatabaseとOn-Disk Databaseの違いは以下のとおり。 インメモ

    手を動かして学ぶ Redis 入門
  • システム開発で得たRedis利用ノウハウ | フューチャー技術ブログ

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

    システム開発で得たRedis利用ノウハウ | フューチャー技術ブログ
  • デバッガでRedisのコードを読んでみよう - freee Developers Blog

    こんにちは、エンジニアの松崎 啓治(まつざき けいじ)です。 インターネット上ではこのIDで活動しています。 @futoase 先日、社内でエンジニア向けに「デバッガでRedisのコードを読んでみよう」というテーマの勉強会が開かれました。せっかくの機会なので、その内容をご紹介します。 勉強会スライドへのリンク デバッガでRedisのコードを追いかけるメリットとしては以下のようなものがあります。 gdbを使ってRedisのコードをstep実行することで、どのタイミングでRedisのStorage(memory領域)からデータを取得できるのか体験から学べる Redisだけではなく、nginxMySQL、PostgreSQLなどgdbを利用してstep実行を行えるものであれば、今回の勉強会の手法を元に同じように体験から学ぶことができる デバッガで追いかけるための準備 プレゼン資料で

    デバッガでRedisのコードを読んでみよう - freee Developers Blog
  • プロダクションでRedis Clusterを3年間運用し続けた所感 - Qiita

    ちなみに更新内容的には、以下のような感じでした。 4.0.3「PSYNC2のバグ直したよ」 4.0.4「PSYNC2のバグ修正いくつか、4.0.3に入れ忘れてたわ」 4.0.5「4.0.4のバグ修正、壊れてたわ」 というわけで、4.0系はまだ使わないほうがいいです。 その2 Redisのログは何を監視している? Redisのログは非常に説明的で、あまりシステムによる監視に向いてません。 とりあえず、以下は正規表現で雑にひっかかるようにしています。 AOF出力関連 Asynchronous AOF fsync is taking too long (disk is busy?). Writing the AOF buffer without waiting for fsync to complete, this may slow down Redis. AOF出力時にI/O性能が足りない時に

    プロダクションでRedis Clusterを3年間運用し続けた所感 - Qiita
  • blog.md · GitHub

    blog.md 記事のリンク: https://medium.com/@i2tsuki/https-medium-com-i2tsuki-redis-cluster-ops-monitoring-and-watch-techniques-8b2d0d9e92b6 この記事ははてなエンジニア Advent Calendar 2017の 20 日目の記事です。19 日目の記事は yasuhiro_onishi さんのScratchを使った子どもへのプログラミング教育 - 大西ブログでした。 今年の 2 月にはてなに入社して、あと 1 ヶ月と少しで 1 年を迎えようとしています。はてなに入社してから Mackerel のインフラと時系列データベースの AWS 移行プロジェクトを任されたり、移行を終えた後も後片付けや移行後の運用を担当したりと、主に Mackerel にコミットしていた 1 年でし

    blog.md · GitHub
  • 本当は恐ろしい分散システムの話

    分散システムのFault Injectionの話 NTTデータテクノロジーカンファレンス2017で発表する際に用いたプレゼン資料 https://oss.nttdata.com/hadoop/event/201710/index.html Read less

    本当は恐ろしい分散システムの話
  • RedisサーバのCPU負荷対策パターン - ゆううきブログ

    Redisは多彩なデータ構造をもつ1インメモリDBであり、昨今のWebアプリケーションのデータストアの一つとして、広く利用されている。 しかし、一方で、性能改善のための手法を体系的にまとめた資料が見当たらないと感じていた。 実際、最初にCPU負荷が問題になったときにどうしたものかと悩み、調査と試行錯誤を繰り返した。 そこで、この記事では、自分の経験を基に、RedisサーバのCPU負荷対策を「CPU負荷削減」「スケールアップ」「スケールアウト」に分類し、パターンとしてまとめる。 背景 RedisのCPU負荷対策パターン CPU負荷削減 multiコマンド Redisパイプライニング Luaスクリプティング Redisモジュール(夢) スケールアップ スケールアウト 参照用スレーブ 垂直分割 水平分割 Redis Clusterによる水平分割 その他 スライド資料 あとがき 参考資料 背景 R

    RedisサーバのCPU負荷対策パターン - ゆううきブログ
  • 真剣にRedisを使ってみようという気持ちになったのでRedisについて知っていることを書く - なんかかきたい

    年末ですね。更新がおろそかになっていたので、たまにはちゃんとした話をしたいなと思い、前々から書こうと思っていたRedisの話を書いてみました。 検証に使用したRedisは3.2ですので、新しくバージョンが変わると以下の話は変わってくるかもしれませんが今のところそのようなことはしばらくなさそうです。 以下長々とRedisを当に使えるように設定したり調べたり検証したりした内容を書いていきます。 いまさらですが Redisは構造データを持てるオンメモリデータベースサーバで、RDBとは違いますがHashやListなどのデータ構造を記録することができる高速なストレージサーバです。 オンメモリDBでHashを持つことができるので、KVSのように扱われることもあるのですが、memcachedと比較すると機能は多く、レプリケーションやAtomicなデータ処理なども可能です。 導入の前に Redisに限っ

    真剣にRedisを使ってみようという気持ちになったのでRedisについて知っていることを書く - なんかかきたい
  • kubernetesでRedisClusterを構築してみた - Qiita

    概要 kubernetesでredis cluster構築してみた備忘録 https://github.com/kelseyhightower/kubernetes-redis-cluster ほぼこちらをそのまま使っている Redis server version、3.2.0 データの永続化はしない redisクラスタ基master×3にレプリカ用 slave×3 redis (loadbalancer) | |- [ redis-1(master) ] - [redis-4(slave)] |- [ redis-2(master) ] - [redis-5(slave)] |- [ redis-3(master) ] - [redis-6(slave)]

    kubernetesでRedisClusterを構築してみた - Qiita
  • Redis Cluster でマスタ・スレーブのクラスタ構成を構築してみた - enomotodev’s blog

    Redis 3.0 から正式に追加された機能である Redis Cluster を使って、同一サーバ内で、マスタが 3 インスタンス、スレーブが 3 インスタンスのクラスタ構成を構築してみました。 図にするとこちらのような構成です。 作業環境 CentOS 7.3 Redis をインストールする 今回は全て root で作業を行ったので、root に変更します。 $ sudo su - あとで redis-trib.rb を使って、クラスタ構成とレプリケーションを設定するので、Ruby などのパッケージをインストールしておきます # yum install ruby # ruby --version ruby 2.0.0p648 (2015-12-16) [x86_64-linux] # gem install redis 次に、Redis をソースからインストールします。 # wget

    Redis Cluster でマスタ・スレーブのクラスタ構成を構築してみた - enomotodev’s blog
  • RedisのSorted Setsで簡易的な遅延実行Queueを作って迅速にLINE LIVEのPC配信対応をリリースした話 - LINE ENGINEERING

    ! This post is also available in the following languages. 英語, 韓国語 みなさんこんにちは、LINE LIVE開発のYappoです。 今回は先日リリースされました一般向けのPC配信機能を実装するときに作った簡易的な遅延実行Queueについて書いていこうと思います。 関連エントリ:LIVE PRESS 公式ブログ – ゲーム実況にもぴったり!LINE LIVEでPC横型ライブ配信を試してみよう 背景 今までのLINE LIVEでの配信方法としては、アプリ上で直接配信する方法と、公式アカウント向けの専用画面(LINE OFFICIAL ACCOUNT MANAGER)とRTMPソフト(もしくは専用機材)を利用してPCからの配信する方法がありました。 この2つの方法は全く違う仕組みで実装されるように見えますが、実は基となる設計は同じで

    RedisのSorted Setsで簡易的な遅延実行Queueを作って迅速にLINE LIVEのPC配信対応をリリースした話 - LINE ENGINEERING
  • ソシャゲ開発経験から学んだゲームに Redis を使う際の Tips

    近年の KVS では割と Redis が覇権を取っていることもあり(当社比), 社内の多くのプロジェクトで Redis を使用するようになりました. ということでノウハウ的なのも溜まってきたのでまとめたいと思います. (大量のユーザーデータを扱うソシャゲにしか当てはまらない部分もあるかと思います) 単純にパフォーマンスを RDB < Redis と思い込んでとりあえずでキャッシュしない 「Redis は速い」と言われますが, インデックスをちゃんと貼った RDB のクエリも そこまで遅いわけではありません. 結局通信コストの方が遥かに大きいので内部の 取得時間差はトータルで考えると多くの場合誤差です. 特に RDB の主キーのみで取得できるようなデータを Redis にキャッシュすることに メリットはありません. キャッシュするコードを書くコストの方が高くつきます. キャッシュするのは R

    ソシャゲ開発経験から学んだゲームに Redis を使う際の Tips
  • http://post.simplie.jp/posts/116

    http://post.simplie.jp/posts/116
  • なぜ私のredisはこんなにも遅かったのか - Qiita

    RedisってKVSやしチョー早いんやろ? と、そう思っていた時期が私にもありました。 Redisを利用する上で、適切に利用しないと性能が1/10以下に陥ってしまいます。 この記事では、redisの性能を発揮する実装と発揮できない実装で性能測定を行いました。 結論 最初に結論 Redisの読み書きはmget/msetなどの複数のデータを一度に読み書きするコマンドを用いることで来の性能が発揮できる。 逆に単純にforを用いてget/setなどのコマンドで1件単位でループを回すと大きな性能劣化が発生する。 環境 python3で計測します。 redisはdockerで動かしました。 $ docker run --name redis -d -p 6379:6379 redis:3.2.8 $ redis-cli 127.0.0.1:6379> ping redis-cliは別途インストールし

    なぜ私のredisはこんなにも遅かったのか - Qiita
  • SpringのCache AbstractionでRedisを使ってみる - CLOVER🍀

    SpringのCache Abstractionで、Redisを試してみたくなったので、気になるところの確認を含めて ちょっと遊んでみます。 Spring BootのAutoConfigure対象で、裏ではSpring Data Redisを使っているみたいです。 Caching / Redis Spring Data Redis ここでは、簡単なJavaBeansをRedisに突っ込むことと、@CacheableアノテーションでCacheを使うくらいの確認を してみます。 準備 まずは、Maven依存関係から。 <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <java.version>1.8</java.version> <maven.compiler.source>1.8<

    SpringのCache AbstractionでRedisを使ってみる - CLOVER🍀
  • Redisを使ってユニークなIDを配布する

    スケーラブルにIDを生成する方法として Twitterのsnowflakeが有名です。 1024台までスケールすることが出来ますが、各snowflakeのサーバにユニークなWoker IDを割り振る必要があります。 IDを振るためのサーバにIDを振るのが問題になるとは難しいですね。 各snowflakeサーバにIDを振る親玉Worker ID配布サーバを作るというアイデアはあったのですが、 Worker IDサーバの可用性を考えるのが大変で手を付けていませんでした。 最近になってWorker IDサーバとしてRedisを使い、ソート済みセット型で管理すれば楽できるのでは? と思いついたので、やってみたというお話です。 概要 レポジトリはこちらです。 shogo82148/yaraus 他のsnowflake-likeなID発番サーバの実装として katsubushiや sonyflakeな

  • Redisのインストール・セットアップ - Qiita

    Redis のインストール パッケージから導入する方法と、ソースからインストールする2種類の方法があります 各自の環境制約を踏まえて導入手段を検討してください パッケージから導入する場合 Redis は標準パッケージに含まれていません(2015/11/15時点) サードパーティのリポジトリをインストールするので、標準リポジトリしか利用できない環境では後述の「ソースからインストール」にスキップしてください サードパーティのリポジトリをセットアップします remi と EPEL リポジトリが必要です導入手順はこちら メモリ管理に tcmalloc を利用しているため gperftools-libs もインストールします

    Redisのインストール・セットアップ - Qiita
  • ConsulのDNSを使ってRedisの冗長化 | サムテック!

    こんにちはエンジニアのYです。 今回はConsulのDNSを使ってRedisの冗長化を検討しましたというお話です。 このような境遇の方は役に立つかもしれません。 Consulとは? HashiCorp社のプロダクトの一つで管理対象のServerに仕込んで使います。下記の様な機能があります。 Service Discovery Failure Detection Key/Value Storage etc 例えばこんなことに使えます。 Service Discovery 起動しているServer(WEB,DB,Redis…)の一覧を出したいときなど Failure Detection NAT用のインスタンスを冗長化・負荷分散したい、障害が発生したらクラスタから切り離したいときなど Key/Value Storage オートスケールのためにリリースされてるアプリケーションのVersionを保持

    ConsulのDNSを使ってRedisの冗長化 | サムテック!
  • Redis の Sorted Sets でランダムにメンバーを取得する - Qiita

    Happy Elements 株式会社 カカリアスタジオ Advent Calendar 2016 19日目の記事です。 概要 自分の所属チームのアプリではユーザーランキングの実装に Redis の Sorted Sets を使用しています。Redis についての基的な解説は別の記事に譲り、この記事ではそのスクリプティング機能(EVAL コマンド)を使った実装について紹介します。 以下のような状況を考えます。(架空の設定です) 100万人のユーザーがそれぞれ自分のスコアを持っており、それによってリアルタイムにランキングされています。スコアはユーザー同士のバトルによって変化します。例えば自分より大きなスコアのユーザーに勝利すれば自分のスコアが大きく加算され、小さなユーザーに勝利すれば小さく加算されます。対戦相手の選択には自分と同程度のスコアをもったユーザーを選択するのが望ましく、また、毎回

    Redis の Sorted Sets でランダムにメンバーを取得する - Qiita
  • Redisのpub/sub機能 - Qiita

    RedisはNoSQLのデータストアとして有名ですが、もう1つの機能として、「pub/sub機能」を持っています。もはやSQLと比較するような機能ですらないのですが、軽くまとめてみます。 pub/subとは JavaScriptをやっているとイメージしやすいと思うのですが、onclickに直接イベントを書いてしまうとイベントが1つしか設定できなくなってしまいます。 一方で、addEventListenerを使えば複数イベントをセットできますし、イベントをトリガする側ではイベントがいくつついているかも気にせずに、まとめて発生させることができます。このようにして、「イベントを起こす側」と「イベント処理を行う側」を分離するのがpub/subモデルです。 Redisでのpub/sub まず、受信側がSUBSCRIBE チャンネル名というコマンドをRedisに投げます。ふつうのRedisコマンドは、

    Redisのpub/sub機能 - Qiita