Amazon Linux Amazon Linux AMIならgccとかインストールしなくても次のコマンドでインストールが終わる.
![AWS EC2にredisをインストールする - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/2e5d8fd2263dd7d0f14c3b89dbb957021a5ac4cb/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9QVdTJTIwRUMyJUUzJTgxJUFCcmVkaXMlRTMlODIlOTIlRTMlODIlQTQlRTMlODMlQjMlRTMlODIlQjklRTMlODMlODglRTMlODMlQkMlRTMlODMlQUIlRTMlODElOTklRTMlODIlOEImdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZ0eHQtY2xpcD1lbGxpcHNpcyZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTc3MjE1Njg4ZjE0ZDg0YzBjMmRlNzlkYWQ1YmM4ZDg5%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwc3Rvc2hpeWEmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPWZhZDhkZGMxZmY3MjAxMzE0YmNhYzE0N2IyOTkyOTVm%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D10a0d5a0921b849da1dbad02c924c184)
はじめに 今までなぁなぁにしてきたRedisをいまさらながらに勉強してまとめました。 Redisって聞いたことあるけど中身はよく知らないとか、プロジェクトでなんとなく使っているけど実はよく分かっていないなどの人向けのページです。 NoSQL Redisの前にまずはNoSQLから。 背景 ビッグデータの登場により、従来のRDBだけでは充分な処理ができなくなってきたことがNoSQL登場の背景にある。 ビッグデータの定義は色々ありますが、ここでは3V(Volume/Velocity/Variety)を満たすものをビッグデータと呼びます。 VolumeとVelocityの問題を解決するためにNoSQLが必要 Volume(大量データ)とVelocity(秒単位で大量データ)に関する問題を対処する場合、スケールアップ(メモリ増加、コア数増加、SSD化)とスケールアウトの2通りの方法がある。 しかしな
まえがき リアルタイムWebアプリケーションを開発していると、channel内でログイン情報を扱いたくなる時がよくあると思います。 ActionCable内でセッションストアをCookieStoreにした場合の ログイン情報の取得例はいくつかサンプルがありましたが、 セッションストアにRedisを利用している場合のサンプルがなかったのでまとめておきます。 環境 Ruby: 2.3.1 Rails: 5.0.0.1 で試しています。 RailsのセッションストアをRedisにする まずはセッションストアをredisにする為に以下のGemをインストールします。 また、Redisを扱いやすくするためにredis-namespaceも利用しています。
Reddieとは 2017年8月17日にbeta版がリリースされた、マネジメントツール(公式的にはcompanion app)。 https://get-reddie.com/ twitter: https://twitter.com/ReddieApp 何が出来るのか トップページに動画のデモがあるので、それを見てみるのがオススメです またDEMOページでは、実際に動かすことも出来ます Redis Clusterのmaster-slaveを可視化できる Drag&Dropでslaveの付け替えが出来る 新規にnodeを追加できる Web上から全nodeの設定変更が出来る Web上からリシャーディングが出来る Web上からSLOWLOGが見える 死活監視やメモリやNW IOなどのリアルタイム可視化 個人的嬉しポイント 認証付きのRedis Clsuterにも対応している 公式のredis-
... ... config.cache_store = :redis_store, { url: 'redis://localhost', port: 6379, db: 0 } ... ... # 書き込み > Rails.cache.write('aaa', 'aaa') => "OK" > Redis.current.with { |redis| redis.set('bbb', 'bbb') } => "OK" # 読み込み > Rails.cache.read('aaa') => 'aaa' > Redis.current.with { |redis| redis.get('bbb') } => 'bbb' # キャッシュクリア後読み込み > Rails.cache.clear => nil > Rails.cache.read('aaa') => nil > Redis.cu
<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\Redis; use App\Http\Requests; use App\Http\Controllers\Controller; use Illuminate\Http\Request; class RedisController extends Controller { /** * Display a listing of the resource. * * @return Response */ public function index() { // $redis = \Illuminate\Support\Facades\Redis::connection(); $result = $redis->get('keys'); return $r
redis 4.0 GA release ついに昨日(2017/07/15)に、redis 4.0のstableがリリースされました。 今までのredisと何が変わったのか?というのを、軽くまとめたいと思います。 間違いなどありましたら、指摘いただけると幸いです。 前回のqiita記事 プロダクションで2年間RedisClusterを運用してみて release notes 一部抜粋すると Note that 4.0 is probably one of the most extreme releases of Redis ever made in terms of changes inside the internals: all the aggregated data types no longer use Redis Objects structures but directly S
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は別途インストールし
ジャポルノレディーズであいまい検索が最も役だったのが名寄せでした。 ジャポルノレディーズでは基本的に動画は全て他のエロサイトへのリンクで提供しているので明日花キララさんの動画を探す上で他のエロサイトから明日花キララさんの動画を探す作業が必須です。 しかし問題は ・エロサイト毎に明日花キララさんのアルファベット表記がバラバラ という事でした。 エロサイトAではasuka_kirara エロサイトBではasuka_kilala エロサイトCではashitaka_kirara ・ ・ ・ という感じ。うちではasuka_kiraraでデータを持っているので、当然asuka_kilalaと名前のついている動画もasuka_kiraraの動画としてデータを保存したい!という訳です。 そこであいまい検索が役立ちます。 まずは普通のmatchクエリでasuka_kilalaを検索します。 # codin
Happy Elements 株式会社 カカリアスタジオ Advent Calendar 2016 19日目の記事です。 概要 自分の所属チームのアプリではユーザーランキングの実装に Redis の Sorted Sets を使用しています。Redis についての基本的な解説は別の記事に譲り、この記事ではそのスクリプティング機能(EVAL コマンド)を使った実装について紹介します。 以下のような状況を考えます。(架空の設定です) 100万人のユーザーがそれぞれ自分のスコアを持っており、それによってリアルタイムにランキングされています。スコアはユーザー同士のバトルによって変化します。例えば自分より大きなスコアのユーザーに勝利すれば自分のスコアが大きく加算され、小さなユーザーに勝利すれば小さく加算されます。対戦相手の選択には自分と同程度のスコアをもったユーザーを選択するのが望ましく、また、毎回
時系列データを分析する時、csv/tsvファイルからデータを読み込む処理をすることがよくありますよね。 数十MBに収まる容量のファイルならそこまで気にならないかもしれませんが、数百MB程度のファイルになると読み込むだけで数秒〜数十秒かかったりして、コードを実行する度に発生する待ち時間がストレスになってしまいます。 ここでは少しの工夫で読み込みの処理を爆速化出来る方法を紹介します。 実行環境 手元のMBPで実行時間の計測を行います。
Herokuで Redis / Postgres を運用していると、定期的にメンテナンスを求められることがあるのでそのあたりのメモ。 メンテナンスの影響について メンテナンスは大抵元と変わりなく動作することが多いが、メンテナンスの前後で以下のような現象が生じることがある。 DB/Redis の接続情報が変わることがある? DBについてはバックアップのスケジューラ設定が飛ぶことがある? まれに…というレベルのものなので、障害なのか、どうなのかわからないが、接続情報に関しては変わった瞬間障害になるレベルなので、しっかり環境変数からパースするようにしておきたい。 スケジューラの設定について Premium以上のプランでは、メンテナンスを指定の曜日・時間で行うよう設定することが可能なので、コレを利用しておくと休日にメンテが走って…といったトラブルを未然に防ぐことが出来る模様。 Heroku Pos
改善前に比べ約5倍表示速度が速くなりました。また、1秒間にさばけるリクエスト数も約3倍ほどになっています。Unicornの1プロセスあたりが使用しているメモリもだいぶ低くなりました。 なお、ページ読み込み速度は、ブラウザでページを表示したときにインジケータのクルクルが止まったときです。Chromeの開発ツールのネットワークタブで赤い文字で Load 1.2sec とか表示されているやつです。GoogleAnalyticsのページ速度でいうと plt というキーでレポートされているものです(参考ページ)。 グラフとか GoogleAnalyticsのグラフです。読み込み時間が下がっています。 メモリ使用量です。Zabbixからmackerelに乗り換えたのでグラフが違いますが、使用量が下がって安定しているのがわかります。 AWS ELBのレイテンシです。不安定なレスポンスが安定してるのがわか
Redis のインストール パッケージから導入する方法と、ソースからインストールする2種類の方法があります 各自の環境制約を踏まえて導入手段を検討してください パッケージから導入する場合 Redis は標準パッケージに含まれていません(2015/11/15時点) サードパーティのリポジトリをインストールするので、標準リポジトリしか利用できない環境では後述の「ソースからインストール」にスキップしてください サードパーティのリポジトリをセットアップします remi と EPEL リポジトリが必要です導入手順はこちら メモリ管理に tcmalloc を利用しているため gperftools-libs もインストールします
俺です。 Redisバージョン: 3.0.5 Redis内のデータがnGB超えていたのでチューニングする。 repl-timeoutはRedisのデータサイズに応じて長めに設定したものの、 slave再接続時にmasterで実行されるdisk出力のbgsaveを抑える方法があったので検証した。 参考 m(__)m 検証結果 nGB超のデータを扱う際はディスクレスレプリケーションが有効です。 ディスクレスレプリケーションであればmasterで一時ダンプは出力されないのでcached memoryは消費しません デフォルトのレプリケーションに比べてFull syncの時間が1/2になりました。 本例(master/slave関係)ではmasterのノードにのみディスクレスレプリケーションのパラメータをセットしましたが、Sentinelを利用する場合は全Redisノードに対して設定しておくのが良
概要 RedisClusterのチュートリアルを読みつつ疑問を解消していく。 Redis自体がシンプルな仕組みなこともあり、ドキュメントを読むだけでおよそ理解できるものと思われるので、下手な追加説明はあまりしていません。 以下、引用の箇所は筆者が和訳したもの、それ以外が筆者のコメントになります。 Redis cluster tutorial このドキュメントはRedisClusterについて書かれています。 distributed systemのコンセプトを簡単にまとめたものになります。 どうやってクラスタを構成し、テストし、運用するかを要点を絞ってまとめたものです。詳細はspecの方をご確認ください。 しかし、可用性と一貫性についての説明も試みています。 プロダクションで使うにはspecificationも読むことをおすすめしますが、とりあえず試したい方はこちらをお読み下さい。 Redi
「ソート済セット型」すげえいい。 これね 「入れ子区間モデル」が超容易かつ効率的に実装できる。 んでもって、これね。リンク先に書いてない「入れ子区間モデル」の凄いところをひとつ挙げておこう。それは、ある枝の配下のノードを「乱択」するアルゴリズムが書けるのだ。 あと、これは元々RDBSで入れ子区間モデルが有効な理由でもあるのだが、操作する区間ごとにロックをかけられるのが素敵なのだ。 これだけ書いただけでも、鋭い人は判ってくれると思う。 まあ、Redisにツリー構造を入れるなら、このやり方がベストだと思うわけよ。ただね、ちょっと弄ってみた結果、子ノードが指定された時の親ノード獲得の効率が悪いところが気になる。あと、親ノードを特定するまで、まともにロックがかけられないのもイタイ。だから、隣接リストモデルを兼用して親を得る必要があるときにはそっちを参照する方が良いかもしれない。 後でちゃんと書く。
考え方と原理 私のロック魂をアピールさせてください!(多田李衣菜) RedisでSETNXを使えば簡単に排他ロックが実現できる。MSETNXを使えば、複数のロックを同時に評価できる。それは良いのだが、並行実行性を考えると、なるべく競合しない方が良いよね。データ構造でも、競合しにくいように考えていると思うので、制御の方でも競合しにくい作りにしよう。 その代表が、Reader-Writer-Lock。読み出しはいくらでも競合したまえ。書き込みは別だ。というやつだね。賢いロックの賢いついでにreaderlock獲得中のコンテクストが、writerlockに昇格できるってのいいかも、と思ったけど、それ、ちょっと考えたら、同じことを考えてる奴が複数いたら、デッドロックになるじゃんね? 書き込みをしたい人が、書き込みをするための情報を得るために読み出す場合、読み出しの段階からwriterlock獲得し
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く