Caching is a way for applications to store data so that future requests to the same data are returned faster and do not require repeating computationally expensive operations. The Spring Framework provides a simple way to cache the results of method calls with little to no configuration. The examples in this post use Spring 4.1.3 and Spring Data Redis 1.4.1, the latest versions at the time of this
この記事は、はてなエンジニアアドベントカレンダー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不適切利用による問題は本番運用が始まってから顕在化することが多く、時限爆弾みたいな存在です。事前に防ぐにはコードレビュー段階で叩くしかありません。 Redisはスクリプト言語と相性が良く、適切に利用するとRDBと比較し驚くほど高速なプログラムを組むことができます。昨年尊敬する先輩にコードレビューで斧100本くらい(レビューコメント)投げられて血まみれになりつつ学んだことを、まとめて書いてます。概要は『消えても良いデータならRedis』 Redisのメモリが溢れたら... (この話は事実ではなくファンタジーです。) 深夜電話で叩き起こされました。どうやらアクセス障害みたいです。 何人かで実機確認したら、まったくゲームが遊べない。データ不整合怖いのでメンテIN。 ほどなくしてRedisが溢れメモリ不足で新規書き込みが出来なくなっていると判明。サーバのメモリ容量は64GByteでこれ以
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は、(ユーザが閲覧している範囲に追加反映するということなの
\閉鎖予定のサイトも売れるかも?/ アクセスがないサイトもコンテンツ価値で売れる場合も… ドメインの有効期限を更新してサイト売却にトライしてみましょう
メモメモ。泥臭い話で面白かったです。 「大規模Redisサーバ縮小化の戦い」 駒井 祐人 氏 (株)アカツキ ゲームのサーバサイド機能開発、インフラの設計構築・保守運用 Redisとは インメモリDB 5種類のキーバリューのデータ型 ファイル永続化オプション システムの問題点 EC2サーバが20台に対して、AWSのElasticCache(Redis)が64台あった なぜ64台あったかというと、リリース直後にRedisの負荷問題があり、8台 => 64台になった 調査するとkeys("")を実行している箇所があった 当然お金がかかる(cache.m3.large * 64台 = 約135万円/月) 冗長化しんどいし、設定ファイルの記載も辛い ので、縮小化と冗長化の対処をしたい 現状整理 格納されているデータ フレンド情報、セール情報、ランキング情報 キーの件数 1サーバに8DB、1DBあた
Redisの作者antirez氏自らによる、memcachedとRedisの長所短所の比較。特に、Redisを単なるキャッシュ用アプリケーションとしてmemcachedと比較することの間違いと、それぞれの向いている使用方法についての私見。 あなたが私と面識があるなら、私が競合製品があることが悪いと考える人間でないことはご存知でしょう。ユーザーに選択肢があることは本当にいいことだと思っていますし、だからこそ他の技術とRedisを比較するようなことはほとんどしませんでした。 しかし、最適なソリューションを選ぶためには、ユーザーは正しく情報を持たねばならないのも確かです。 この記事を書くのは、有名なライブラリであるSidekiqの作者として知られるMike Perhamが、Redisのバックエンドストレージとしての使い方を書いた記事を読んだのがきっかけです。従って、私はMikeがRedisに「反
こんにちは、宇津井です。 弊社ではゲソてんというゲームプラットフォームを運営しております。ゲソてんではサービスリリース当初から主にキャッシュ的な役割でRedisを導入していました。つい先日の事ですが訳あってRedis 2.6からサポートされたRedis Sentinelを採用しました。今回は、採用に至った経緯をご紹介します。 簡単なシステム構成 パフォーマンスは良いし、Memcachedには無い便利な機能を提供するRedisですが約一年間運用していくつかの問題が出てきました。 Redisサーバーが突然高負荷に陥るするとWebサーバーも高負荷に陥るRedisのReplicationは張ってるけどアプリケーション側でRedis Slaveへフェイルオーバーしない(MySQLを直接参照する)Redis落ちると恐らくMySQLサーバーが耐えられない(落ちた事無いけど)という事で対策を行ってきました
LRUにも色々あるよねーって話。ちなみにmemcachedとRedisのどっちがいいか的な話ではない。 memcachedのLRU memcachedは起動時のオプション-mで最大何バイトまでmemcachedにメモリを食わせるかを指定することが出来て、この値を超えてmemcachedにデータをぶっ込もうとするとデータの追い出し(eviction)が発生します。どのデータが追い出されるかはいわゆるLRU(Least Recently Used)で、つまり最近使われていないデータが追い出されます。なので、「memcachedはLRUだよ」と言われると「ふーん」と分かったような気分になりますが、実はmemcachedのLRUはデータ全体におけるLRUではなくslab classごとのLRUなので、この辺を勘違いしていると痛い目に合います。 slab allocatorそのものについてはここでは
1 require 'ohm' 2 require 'ohm-arfreaks' # これを追加 3 4 class Video < Ohm::Model 5 attribute :url 6 set :tags 7 end 8 9 Video.create!(:url=>"a") 10 Video.first.attributes 11 => {:url=>"a", :tags=>[]} 以下のメソッドが利用可能です (0.1.0 現在) self.primary_key self.columns self.column_names self.content_columns self.columns_hash self.create! save! self.first self.last self.count self.delete_all new_record? at
Redis, Memcached, Tokyo Tyrant and MySQL comparision I wanted to compare the following DBs, NoSQLs and caching solutions for speed and connections. Tested the following Redis Memcached Tokyo Tyrant / Tokyo Cabinet MySQL 5.1.40 (MyISAM) MySQL 5.1.40 (with Innodb Plugin 1.0.4), compiled into source of MySQL My test had the following criteria 2 client boxes All clients connecting to the server using
We’ve covered some good ground already, some blabber about Redis in general, and also some thoughts on when using it could be beneficial. The other big question is: How do I integrate that stuff in my application? How do I get my objects to be stored neatly in Redis? The simplest way is to just use the redis-rb library and talk to Redis almost directly. That’s quite low level compared what you’re
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く