タグ

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

  • Redis 4のUNLINKでサーバー負荷を抑えてみる(Redis Cluster) | Wedding Park CREATORS Blog

    Redis4.0のUNLINKを使ってみる こんにちは、サーバーサイドエンジニアの菅原です。 今回は今更ながらRedis4系から追加されたUNLINKコマンドについて調べて検証してみました。 背景 Webアプリケーションのパフォーマンスを向上しようとするときRedisは強力なツールです。 ですがRedisを運用する注意点としてRedisの容量の懸念が見込まれます。 キーがどんどん積み上がるとRedisの容量を大きく圧迫し、そうなるとRedisはキーの検索に時間を要するのとキーを削除するときもサーバーに負荷がかかりサーバーダウンしてしまうことも考えられます。 setした時に設定したexpireが切れたキーも完全に消えることは確証されなく、 ゴミのデータが残る場合があるのでDELコマンドで定期的に掃除が必要になります。 しかしRedis3までのDELコマンドは一度に指定されたキーを全てアクセス

    Redis 4のUNLINKでサーバー負荷を抑えてみる(Redis Cluster) | Wedding Park CREATORS Blog
  • プロダクションで2年間Redis Clusterを運用してみて - Qiita

    TL;DR Redis Clusterで運用は当に楽になった でも、Redis 4.0は不安 Redis Clusterで一番怖いのはDisk IO 特にフェイルオーバーなどのFull Resync時 Redisとは? 高速なインメモリ型のKVS シングルスレッド 豊富なデータ構造(次ページにて詳細) 豊富な操作(次々ページにて詳細) 豊富なデータ構造 key-value型 hash型(key-field-value) set型(集合演算ができる) sorted set型(スコア付きset) 任意の型(redis modules機能) 豊富な操作 インクリメントや和集合などなど lua scriptも実行できちゃう シングルスレッドだからatomicな処理になる Redisの問題点 writeがスケールしない 気軽に停止できない サーバー再起動やバージョンアップなど Redis Clus

    プロダクションで2年間Redis Clusterを運用してみて - Qiita
  • A-5 HBaseとRedisを使った100億超/日メッセージを処理するLINEのストレージ : 雨ブロ 【雨川悠のblog】

    5月6 A-5 HBaseとRedisを使った100億超/日メッセージを処理するLINEのストレージ カテゴリ:イベント参加報告 セッション名:A-5 HBaseとRedisを使った100億超/日メッセージを処理するLINEのストレージA-5 LINE Global Culture 登壇者:Shunsuke.N氏 以下、メモと所感。 【メモ】 ■LINE Storage ユーザー同士の非同期なメッセージをやりとりするため、サーバーにメッセージを保存している マルチデバイスを対象としているため、それに耐えられるストレージが必要 ストレージに求められるもの ・Low latency ・0-downtime フェールオーバーとフォールトトレランス RedisとHBaseを適材適所で利用している Redisの利用開始当初、クラスタリング機能がなかったのでシャーディングして使っていた HBaseは書

    A-5 HBaseとRedisを使った100億超/日メッセージを処理するLINEのストレージ : 雨ブロ 【雨川悠のblog】
  • Redis 4.0 RC1 出たし、Redis モジュールを紹介してみる - Qiita

    TL; DR (予想外に長くなってしまったので) Redis 4.0 がもう来年には来そうです!モジュール機能が使えるようになりますよ! というわけで、現状作られているモジュールを紹介してみます 個人的に特に面白いな/便利そうだなと思ったのは以下です Redis graph: グラフデータベース redablooms: ブルームフィルタ redis-cell: レートリミット (Rust で書かれてる!) RedisEx: Redis 便利コマンド詰め合わせ redis-module-shm: 変態モジュール 年末年始は Redis モジュール作ろう! 編 Redis 4.0 RC1 is out! My blog post about it is here: https://t.co/sv37Um6Pgb — Salvatore Sanfilippo (@antirez) 2016年1

    Redis 4.0 RC1 出たし、Redis モジュールを紹介してみる - Qiita
  • [Python] 時系列CSVの読み込みを爆速化する - Qiita

    時系列データを分析する時、csv/tsvファイルからデータを読み込む処理をすることがよくありますよね。 数十MBに収まる容量のファイルならそこまで気にならないかもしれませんが、数百MB程度のファイルになると読み込むだけで数秒〜数十秒かかったりして、コードを実行する度に発生する待ち時間がストレスになってしまいます。 ここでは少しの工夫で読み込みの処理を爆速化出来る方法を紹介します。 実行環境 手元のMBPで実行時間の計測を行います。

    [Python] 時系列CSVの読み込みを爆速化する - Qiita
  • Redisアプリケーションパターン | おそらくはそれさえも平凡な日々

    この記事は、はてなエンジニアアドベントカレンダー2016の12日目の記事です。 先日こういうツイートをしました。 Redisはキャッシュ用途のミドルウェアだと思わない方が良いと思う — songmu (@songmu) 2016年12月10日 言いたかったのは、Redisはキャッシュのためだけのミドルウェアだと誤解されがちなのですが実際はそうではないということです。実際、公式サイト を見に行くと以下の様なことが書かれています。 Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. つまり、Redisは多彩なデータ構造を保持できるインメモリーのデータストアで、様々な活用法があり、キャッシュとして「も」使える、とい

    Redisアプリケーションパターン | おそらくはそれさえも平凡な日々
  • Heroku Redis / Heroku Postgres メンテンナンスの仕組み - Qiita

    Herokuで Redis / Postgres を運用していると、定期的にメンテナンスを求められることがあるのでそのあたりのメモ。 メンテナンスの影響について メンテナンスは大抵元と変わりなく動作することが多いが、メンテナンスの前後で以下のような現象が生じることがある。 DB/Redis の接続情報が変わることがある? DBについてはバックアップのスケジューラ設定が飛ぶことがある? まれに…というレベルのものなので、障害なのか、どうなのかわからないが、接続情報に関しては変わった瞬間障害になるレベルなので、しっかり環境変数からパースするようにしておきたい。 スケジューラの設定について Premium以上のプランでは、メンテナンスを指定の曜日・時間で行うよう設定することが可能なので、コレを利用しておくと休日にメンテが走って…といったトラブルを未然に防ぐことが出来る模様。 Heroku Pos

    Heroku Redis / Heroku Postgres メンテンナンスの仕組み - Qiita
  • Redisでデータベースを切り替える方法 | shimar's blog

    Redisはデフォルトで16個のデータベースを持っていて、それぞれ0~15のindexが割り当てられています。クライアント側で参照するデータベースを切り替える方法を調べたので纏めておきます。 使用したRedisのバージョンはv3.2.3です。 -nオプションを指定する方法 redis-cliでredisに接続する際に-nオプションでデータベースのindexを指定することができる。 -nオプションを省略した場合は、0番を参照する。

    Redisでデータベースを切り替える方法 | shimar's blog
  • Heroku Redisについてまとめてみた - Qiita

    はじめに 案件でHeroku Redisを使う事が増えてきたため、確認の意味も込めて情報をまとめてみます。 (Google先生の翻訳能力が大幅アップして、家ドキュメントの情報を読むハードルが下がったのは嬉しい限りです。) Heroku Redisとは Heroku公式のRedisサーバで、アドオンとして追加出来ます。 無料枠から用意されており、以下にプランの一覧が載っています。 Heroku Redis - Add-ons - Heroku Elements また、Private Spacesでの各国のリージョンにも全て対応しています。 ちなみに各アドオンのリージョン対応状況は以下で確認できます。 Add-on Runtime Availability CLIツール HerokuHeroku CLI というツールを入れることで、コマンドラインからHerokuを操作出来るようになります

    Heroku Redisについてまとめてみた - Qiita
  • [Docker] golangとredisのコンテナを繋いでみた

    お世話になっております。 しゃまとんです。 先月のDocker触ってみた話に引き続いて、作ったgolang環境からredisに繋いでみるテストをしました。今回は複数のコンテナでの連携的なやつです。 [Docker] CentOS6でGo言語の開発環境を作ってみた 連携にはdocker-composeという仕組み(?)を使うといい感じにやってくれるらしいです。docker-composeを使うにはdocker-compose.ymlを作成する必要があります。 Docker Compose golangからredisに接続して操作するには外部のパッケージが必要なので、自分で作成したimageを利用して、環境を用意するDockerfileを作成します。確認用のコードは記事にしたものをそのまま使います。 [golang]redisで構造体を扱ってみる まずはDockerfileです。 やっているの

    [Docker] golangとredisのコンテナを繋いでみた
  • Spring Boot+Spring SessionでスケーラブルなステートフルWebアプリが簡単につくれるよ〜 - Qiita

    今回は、Spring BootとSpring Sessionを使用してスケーラブルなステートフルWebアプリ(HTTPセッションを使うWebアプリ)を作ってみるぞ〜 システム構成のイメージ 今回は・・・ Webサーバー兼ロードバランサーとしてNginx アプリケーションサーバーとしてSpring Boot(Embedded Tomcat) セッションストアとしてKVS(Key Value Store)の有名どころであるRedis を使用し、Nginx、Spring Boot(Embedded Tomcat)、RedisをそれぞれDockerコンテナ上で動かします。 なお、今回はRedisは1台構成にさせてもらいます。実際のシステムを1台構成で動かすことはあり得ませんが・・・ (Master/Slave構成によるクラスタ化は次回の宿題ということで・・・) フレームワーク構成 Spring B

    Spring Boot+Spring SessionでスケーラブルなステートフルWebアプリが簡単につくれるよ〜 - Qiita
  • Redisの認証について | shimar's blog

    Redisの認証について、公式サイトでは、 Redis Secrity – Redis に、おおよそ次のようなことが書かれている。 Redisはアクセス制御を実装していないが、小さな認証レイヤを提供している。 認証レイヤはredis.confで有効にできる。 認証レイヤが有効になっている場合は、認証されていないクライアントからのクエリを拒絶する。 クライアントはAUTHコマンドを使ってパスワード認証を行うことができる。 パスワードは管理者がredis.confにクリアテキストで設定する。 パスワードについては、 redisが高速にクエリを処理できること。そのため、短時間で大量のパスワードをテストできてしまう。 redisのパスワードは、redis.confに記載されつつ、クライアント側の設定として保持されるので、システム管理者がパスワードを記憶しておく必要がないこと。 から、brute f

    Redisの認証について | shimar's blog
  • ElastiCache for Redis のスケールアップメモ

    先週 AWS ElastiCache for Redis を cache.m3.medium から cache.m4.large にスケールアップしました。今後のためにメモを残して おきます。 背景# cache.m3.medium を Multi-AZ + Replica 1 台構成で運用していた。主な 用途は Rails4 の Session Store サーバとして。 BytesUsedForCache が cache.m3.medium のメモリ 2.78 GiB を超え、 Evictions が発生し始めたため、cache.m4.large にスケールアップした。 タイムライン# メンテナンスウィンドウをセットした AM 3:00 になるとすぐに、当該ク ラスターの Status が modifying になった。 AM 3:07 に Rails から接続できなくなり、Prima

  • Redis を使って応答時間を半分にした話 | FiNC Developers Blog

    Redis を使って応答時間を半分にした話 はじめにはじめまして。 5月にFiNCに入社し、サーバーサイドの Rails エンジニアをやっている亀田と申します。 今回は、Redis を使ってチャットのパフォーマンスを改善した話について書きたいと思います。 チャットで起きていたパフォーマンス問題FiNCアプリにはチャット機能があります。ユーザー同士のコミュニケーションにも使えますし、お得情報の配信やユーザーのサポートなどでも利用しています。 その中で、ユーザーサポートの社内オペレーション用ツールに、(業務に支障が出るレベルではないものの)表示が重いという問題が発生していました。具体的には、対象となるルームのレコードを取得するために数百ミリ秒かかっており、レスポンスを返すまでに合計で1秒前後かかっているという状況でした。 分析をしてみたところ、インデックスを使って対象となるレコードを取得した後

    Redis を使って応答時間を半分にした話 | FiNC Developers Blog
  • Redisのsetnxを使ってマルチサーバ環境での Web API ロック機構を実現する | DevelopersIO

    「これ、同時にリクエスト飛んできた場合って、どうなるの?」 「2つ登録されちゃいますね…」 はじめに Web APIは、リクエストを受け、処理を終えた後レスポンスを返します。モバイルアプリやウェブアプリとセットで開発しているとつい忘れがちになってしまいますが、同時に同じリクエストが飛んできた場合にどういう挙動をするか ということは常に考慮しておかなくてはなりません。「UI上同時にリクエストが送れないから問題なし」では Web APIの設計が不十分です。別の端末から同時に同じリクエストを送ることも可能ですので、UIとは切り離して考えるべきです。 さて、この状況、GETリクエストについては大きな問題にはならないでしょう。いくらリクエストが来てもサーバ側の状態に変化はないので、負荷対策だけしておけば大丈夫そうです。問題はPUTリクエストやPOSTリクエストといった、サーバ側のリソースに変化を及ぼ

    Redisのsetnxを使ってマルチサーバ環境での Web API ロック機構を実現する | DevelopersIO
  • Redisのslowlog設定 - tsunokawaのはてなダイアリー

    概要 Redisのスローログ出力方法と設定のメモ slowlogを5件出力する SLOWLOG GET 5 表示例 [tsunokawa@test ~]$ redis-cli 127.0.0.1:6379> SLOWLOG GET 5 1) 1) (integer) 18284101 2) (integer) 1471441352 3) (integer) 56080 4) 1) "GET" 2) "testkey1" 2) 1) (integer) 18284100 2) (integer) 1471441352 3) (integer) 55133 4) 1) "GET" 2) "testkey1" 3) 1) (integer) 18284099 2) (integer) 1471441352 3) (integer) 43424 4) 1) "GET" 2) "testkey1"

    Redisのslowlog設定 - tsunokawaのはてなダイアリー
  • Dockerに載せたサービスをホットデプロイする - PartyIX

    みなさん,Docker使ってますか? 開発環境に導入する話はよく聞きますが,Dockerで運用してますか? 番をDockerにする上で障壁になりそうなホットデプロイ. 普段,コンテナではなくインスタンス上で直接サービスを動かしている限り,そこまで苦労はしていないんじゃないだろうか. たとえば,Railsであればunicornなどは,graceful restartに対応している. そのため,デプロイの際にサービスを止めずにデプロイすることができるのは,当たり前のことに思える. しかし,Dockerとなると,ポートという障壁が出てきて,一筋縄ではいかない. ECSのような楽な解決方法がある一方で,Docker swarmを使うようなシーンでは,やはり一筋縄ではいかないのではないだろうか. お題 番にDockerを導入するにあたり,以下のような環境を前提として試していた. 中に入れるの

    Dockerに載せたサービスをホットデプロイする - PartyIX
  • Python Examples of redis.ConnectionPool

    The following are 30 code examples of redis.ConnectionPool(). You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may also want to check out all available functions/classes of the module redis , or try the search function .

  • Sidekiq による非同期処理を Redis の分散ロックで排他制御した話 - peroli Developer's Blog

    MERY のサーバーサイドエンジニアの @saidie です。 MERY では画像アップロードや記事投稿による検索インデックス作成などなど、ユーザからのリクエスト起因で起こる時間のかかる処理の多くを非同期に行うことでレスポンスタイムの向上に努めています。また、重複した非同期処理が並行して走ることによる スループット の劣化を分散ロックを用いた 排他制御 で緩和する取り組みなども行っています。 MERY は Ruby on Rails を用いて開発されており、非同期処理には Ruby 製の フレームワーク である Sidekiq を採用しています。この記事では Sidekiq と Redis による分散ロックを使って、同一の非同期処理が(あまり)重複しないような MERY の非同期処理システムについてご紹介します。 Sidekiq Sidekiq はクライアントサー バモ デルのマルチスレッ

    Sidekiq による非同期処理を Redis の分散ロックで排他制御した話 - peroli Developer's Blog
  • MySQL for JSON: Generated Columns and Indexing - Compose Articles

    Unlock innovation with highly secure, fully-managed Database-as-a-Service capabilities on IBM Cloud® IBM Cloud® Database-as-a-Service (DBaaS) services free developers and IT from complex and time-consuming tasks including deployment of infrastructure and database software, infrastructure operations, database software updates, and backup. IBM Cloud® Database SMEs deliver and maintain ready-to-use,

    MySQL for JSON: Generated Columns and Indexing - Compose Articles