タグ

Redisに関するtaro-maruのブックマーク (183)

  • プロダクションで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
  • Vedis - An Embeddable Datastore Engine

    Vedis is an embeddable datastore C library built with over 70 commands similar in concept to Redis but without the networking layer since Vedis run in the same process of the host application. Unlike most other datastores (i.e. memcache, Redis), Vedis does not have a separate server process. Vedis reads and writes directly to ordinary disk files. A complete database with multiple collections, is c

    Vedis - An Embeddable Datastore Engine
  • Railsのマスタ的なModelのキャッシュについて[Redis]

    Railsで中規模なサイトを作っていく上で 避けて通れないのが、増えてきたモデルを適切にキャッシュするしくみのように思えます。 特に変更が少ないマスタ的なテーブルに対して、『多対多』で関連付け(アソシエーション: association)がある場合などは、 それなりのSQLの発行コストになることがあります。そこを適切にキャッシュすることでDBへの負荷が減り、 ユーザーへのレスポンスが改善されると思います。 今回は、最近実装しているキャッシュの方法について、紹介したいと思います。 (というか偉い人、ぜひいい方法教えてください><) 🍣 前提条件: RailsからRedisにキャッシュ今回は前提条件として、Railsのアプリケーションから『redis-store/redis-rails - GitHub』 のGemを使って、Redisにキャッシュをされているとします。 セットアップ方法は『r

    Railsのマスタ的なModelのキャッシュについて[Redis]
  • インメモリDBのRedis 3.0安定版がリリース。Redisクラスタを構成可能に

    キーバリューストアのRedisの最新版「Redis 3.0」安定版が正式にリリースされました。1月にリリース候補第2版が出ておりその時点で次回が安定版と予告されていたため、予告通りのリリースとなりました。 Redisはメモリ上でデータを扱うインメモリデータベースで、その高速性が大きな特長です。Redis 3.0ではこの高速性を生かしつつクラスタ構成を備えたことで、より大規模に展開できるようになりました。 Redis Clusterのドキュメントによると、1000ノードまではリニアに性能がスケールするとのことで、単体サーバでRedisを運用するのに比較して大規模なデータを扱えるようになります。またクラスタ内の一部のノードが落ちても全体としては動作しつづける仕組みのため、データベースの可用性も高めることができるようになりました。 データはRedisクラスタのノードに対して自動的にシャーディング

    インメモリDBのRedis 3.0安定版がリリース。Redisクラスタを構成可能に
    taro-maru
    taro-maru 2015/04/03
    ついに来たか
  • Twitterのキャッシュを支えるRedis - ワザノバ | wazanova

    https://www.youtube.com/watch?v=rP9EKvWt0zo 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約1時間前 TwitterのYao Yuが、大規模サービスのキャッシュにおいてRedisを活用する取組みについて紹介しています。 1) Redisを採用している理由 キャッシュだけで、ストレージとしては利用していない。 主なところでは、Twitterのタイムラインで利用している。ホーム画面であれ、ユーザ画面であれ、タイムラインはTweetのインデックスなので、key/valueストア型のRedisを利用するケースとして最適。 以前はmemcachedを使っていたが、問題になったのは、タイムラインでおきるread/writeは、(ユーザが閲覧している範囲に追加反映するということなの

  • Flickr: Redis Sentinelの導入 - ワザノバ | wazanova

    http://code.flickr.net/2014/07/31/redis-sentinel-at-flickr/ 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 36分前 Flickrエンジニアブログで、Redisのマスター障害復旧を自動化するためにRedis Sentinelを導入した経験を紹介しています。 Redisのユースケース 番サービスに影響を与えないように、写真のアップロード / ユーザ通知 / メタデータの編集などの重たいタスクは、Redisのキューに送られて、非同期でオフライン処理されている。 クリティカルなタスクなので、99.9999%が処理(100万件のうち1件以下)され、99.995%の時間は稼働(月に停止が2分を超えない)させる必要がある。 もし、マスターが落ちると、復旧は手動対

  • Redmon by steelThread

    A web interface for managing redis: cli, admin, and live monitoring Download .zip Download .tar.gz View on GitHub Simple sinatra based dashbord for redis. After seeing the fnordmetric project I was inspired to write this. Some of the ideas there have be carried over here. Watch your redis server live. Interact with redis using a familiar cli interface. Dynamically update your server configuration.

    taro-maru
    taro-maru 2014/07/16
    A web interface for managing redis: cli, admin, and live monitoring
  • ElastiCache for Redisの新機能をためしてみた - クックパッド開発者ブログ

    インフラストラクチャー部 星野(@con_mame)です。 クックパッドでは、AWSを活用してサービスを行っています。 現在クックパッドでは、各種キャッシュにMemcachedやRedisを使用しています。 しかし、用途の多様化やアクセス数の増加などでこれらのサーバのインスタンス数が増加し管理コストが増加してきています。 特にRedisサーバのインスタンス数が増加しており、AWSのサービスの中でもキャッシュのサービスを提供しているElastiCache for Redisへの置換えを検討しています。 ElastiCache for Redisは、一部管理系のコマンドがrenameされており使用出来ませんが、通常のRedisと同じ物で、現在Version 2.6.13と2.8.6が使用出来ます。 SlaveにあたるものはReplication Groupという形で指定でき、Replicati

    ElastiCache for Redisの新機能をためしてみた - クックパッド開発者ブログ
  • RedisInsight - The Best Redis GUI

    Build from anywhere Redis Insight is supported on multiple operating systems: Linux, Windows, and macOS. It seamlessly supports all our deployments, whether you use Redis Open Source, Redis Stack, Redis Enterprise Software, Redis Cloud, Amazon ElastiCache, or Azure Cache for Redis. The Redis Insight graphic UI helps you browse and interact with your data. Filter and visualize Redis keys, perform C

    RedisInsight - The Best Redis GUI
  • 『Node.js Cluster+Socket.IO+Redisによるリアルタイム通知システム』

    Node.js Cluster+Socket.IO+Redisによるリアルタイム通知システム | サイバーエージェント 公式エンジニアブログ

    『Node.js Cluster+Socket.IO+Redisによるリアルタイム通知システム』
  • Socket.IO, Redisを使用し各ゲーム間でプッシュ通知するシステム | 株式会社サイバーエージェント

    2. システム概要 homingは、アメーバピグ関連サービスのいずれかにログインしているユーザに対して、各サービスの通知情報を横断的にプッシュ通知します。 システムの構成は以下の通りです。 図2-1. システム概要 2-1. APIサーバ ユーザへの通知要求を受け付けるREST fullなAPIを備えたWebサーバです。 Node.jsのClusterによる、master/worker構成で稼働します。 通知要求はワーカプロセスで処理します。 図2-2. APIサーバ 2-2. Redisサーバ(データストア用) 一時的なデータをストアするためのRedisサーバです。 sentinelプロセスによる、master/slave構成で稼働します。 ストアされたデータはメモリ上のみで管理し、ディスクへの書き込みは行いません。 以下の情報を管理します。 ユーザのオンライン情報 ユーザIDの索

  • redis-completion — redis-completion 0.4.0 documentation

    Warning This project is now deprecated. The code has a new home as a part of walrus, a set of Python utilities for working with Redis. autocompletion with redis based on: http://antirez.com/post/autocomplete-with-redis.html http://stackoverflow.com/questions/1958005/redis-autocomplete/1966188 redis-completion is capable of storing a large number of phrases and quickly searching them for matches. R

    taro-maru
    taro-maru 2014/05/29
    “autocompletion with redis based on:”
  • 『Redisのロックとパフォーマンス』

    さて、前回に続いてRedisのロックについて書いていきます。 前回、Redisでデータの整合性を担保するには2フェーズコミットが必要であるといいました。 で、Redisで素朴にそれを実現するためにwatch multi execコマンドも見ました。 ここではそのやり方を更に一歩進めようと思います。 Redisのロックは基的に楽観的なロックですが、次の疑似コードを見てください。 while True: try: pipe.watch pipe.hoge() pipe.hpge() pipe.exec() catch: path filelly: return これは他の人が同じデータにアクセスした際、通知を受け取って、もう一回やり直す。ということを言っていますが、これだと、例えばたくさんの人が一気にデータにアクセスすると、自分は長い間このデータにアクセスできません。 つまり、whileでデ

    『Redisのロックとパフォーマンス』
  • 『Redisのトランザクションとパフォーマンス』

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

    『Redisのトランザクションとパフォーマンス』
  • 『redisのチューニング周りとレプリケーション2』

    さて、皆さん、長らく放置してたredisのクラスタリングについて少し見ていきたいと思います。 ここでいうクラスタリングはレプリケーションをさします。シャーディングは少し難しい話に なるのでまたの機会に先送りにしましょう。 1 構築方法 まずやってみるのか一番なので構築方法を書きます。 redisのプロセスを二つ立ち上げましょう。今日もリソースの問題で、全てローカルで作業しますが、その気になればネットワーク越しに作業することも容易のはず。(host portをそれぞれの環境に合わせて設定しましょう。) $ redis-server --port 6379 これでまず、redis-serverが起動しました。待ち受けのポーとは6379番です。ちなみにredisはデフォルトで6379に待機するのでこのオプションは無くてかまいませんが、今回スレーブも同時にローカルに立てるので明示的に書きました。

    『redisのチューニング周りとレプリケーション2』
  • 『redisのチューニング周りとレプリケーション1』

    さて、今日はRedisの簡単なチューニング方法、備考とレプリケーションについてやっていきましょう。 Mongoの時のDBの負荷分散はレプリケーションとシャーディングの2つがあり、基的にレプリの遅延を嫌って、負荷分散はシャーディングで行うと書きました。 そしてRedisにもシャーディング、レプリケーションという概念はありますが、Redisのシャーディングは公式にサポートされておらず、手で実装します。 っていうのも、水平分割っていうぐらいなので、1 ~ 100のデータをサーバ1からフェッチ、101 ~ 200のデータをサーバ2からフェッチ これも立派なシャーディングですので、まあ、どこにでもある概念なんですが... MongodDBのように、それをやるリッチな設定方法はありません。。。 ということで、シャーディングによる負荷分散はとりあえずおいておいて、ここではレプリケーションとパフォーマン

    『redisのチューニング周りとレプリケーション1』
  • Redis(2.8系)の基本オペレーションとかSentinelの挙動とかの色々メモ - 元RX-7乗りの適当な日々

    最近必要に迫られて、ようやくRedisをインストールして触ってみました。(Redis童貞からの脱却) 色々と、基部分ではあるけど、せっかく実際に触りながら勉強したので、このエントリにメモしておこうと思います。 尚、使ってみたRedisのバージョンは、stableの最新版である2.8.7です。(OSは、LinuxのCentOS 6.5) ちなみに、このエントリに書いていないような、Redisの基的なアレコレについては、WEB+DB Press Vol.73のRedis特集(2.6向けではありますが)にほとんど書いてあるので読むべし。 WEB+DB PRESS Vol.73 作者: 設樂洋爾,白土慧,はまちや2,大和田純,松田明,後藤大輔,ひろせまさあき,小林篤,近藤宇智朗,まかまか般若波羅蜜,Mr. O,川添貴生,重国和宏,柳澤建太郎,奥野幹也,佐藤鉄平,後藤秀宣,mala,中島聡,堤智

    Redis(2.8系)の基本オペレーションとかSentinelの挙動とかの色々メモ - 元RX-7乗りの適当な日々
  • 『Redisとハサミは使いよう』

    ロック機能のポイントはSETNXです。 指定したキーがなかった場合は値をセットして1を返し、 既に存在する場合は何もせず0が返ってきます。 つまり、1はロック成功、0は他からロック済みと判断することができます。 それでは実装に進みましょう。 まずロックのインタフェースを用意します。 public interface Lock { public void lock() throws TimeoutException; public void unlock(); } 最低限のロックとアンロックを用意しました。 続いて中身を実装します。 public class RedisLock implements Lock { private static final String LOCK_KEY_PREFIX = "lock:"; private static final int LOCK_EXPIR

    『Redisとハサミは使いよう』
  • Ohm | Object-hash mapping library for Redis.

    Gem · Code · Docs · Wiki

  • Redis-Commander

    What is Redis Commander? Redis-Commander is a node.js web application used to view, edit, and manage a Redis Database Download .zip Download .tar.gz View on GitHub Features

    Redis-Commander