タグ

Redisに関するmasayoshinymのブックマーク (42)

  • 「Valkey」がRedisを急速に置き換えつつある ー バックエンドエンジニアは地殻変動に備えよう

    4月20日、DevOps.comが「Valkeyが急速にRedisを置き換えつつある(Valkey is Rapidly Overtaking Redis)」と題した記事を公開した。 この記事では、Redisのソース利用可能なライセンスへの移行と、その結果として生じたValkeyへの大規模な移行について詳しく紹介されている。以下に、ポイントを絞って内容を紹介する。 Redisのライセンス変更による影響 ちょうど一ヶ月ほど前(3/20)、 RedisがBSD 3-clauseライセンスからRedis Source Available License (RSALv2)およびServer Side Public License (SSPLv1)へとライセンスを変更 した。 BSD 3-clauseライセンスは非常に寛容なオープンソースライセンスで、著作権表示と免責事項の維持が含まれるが、商用利用

    「Valkey」がRedisを急速に置き換えつつある ー バックエンドエンジニアは地殻変動に備えよう
  • Redisをフォークした「Valkey 7.2.5」安定版が早くも登場。AWS、Google、Oracle、Heroku、Alibaba Cloudなど賛同が広がる

    Redisをフォークした「Valkey 7.2.5」安定版が早くも登場。AWSGoogleOracleHeroku、Alibaba Cloudなど賛同が広がる RedisをフォークしたValkeyが早くも安定版「Valkey 7.2.5」をリリース。Valkeyブランドのためのコードの変更が行われた。AWS主導で始まったが、Google CloudやOracleHeroku、Alibaba Cloudなど賛同が広がっている。 Valkey 7.2.5のリリースノートによると、このバージョンはフォーク元であるRedis 7.2.4からブランド名をValkeyへ変更するための変更をソースコードに対して行ったものであり、Redis 7.2.4からプロトコル、API、リターン値、データファイルフォーマットなどの変更は行われていないと説明されています。 ValkeyはRedisをフォークした

    Redisをフォークした「Valkey 7.2.5」安定版が早くも登場。AWS、Google、Oracle、Heroku、Alibaba Cloudなど賛同が広がる
  • Redis Labs、強い一貫性を保ちつつRedisを高可用クラスタ化する「RedisRaft」発表

    インメモリキーバリューストアのRedisを開発するRedis Labsは、複数のRedisをクラスタ化することで高い可用性を実現しつつ、クラスタ内で強い一貫性の保持を実現するクラスタ化ソフトウェア「RedisRaft」を発表しました。 Introducing RedisRaft, a new strong-consistency deployment option for Redis in beyond-cache scenarios requiring a high level of reliability and consistency. #RedisRaft https://t.co/2l5dmiVFpk — Redis Labs (@RedisLabs) June 23, 2020 Redisはメモリ上でキーバリューデータを扱うインメモリデータベースで、その高速性が大きな特長です。

    Redis Labs、強い一貫性を保ちつつRedisを高可用クラスタ化する「RedisRaft」発表
  • MySQLでredis storage engineを作った - tom__bo’s Blog

    MySQLのストレージエンジンはplugableになっていて、APIを実装すれば自作のストレージエンジンを組み込むことができる。 ということで、試しにRedisをストレージエンジンとして使うRedis Storage Engineを作りました。 github.com 途中で飽きてしまった ちまちま実装するよりC++の勉強とInnoDB読んだほうが良さそうと思ったので、お蔵入りするつもりでしたが、Yahoo! Japanでストレージエンジンを研究開発しているという話で個人的に盛り上がったので、改めて作ったところまでを見直して、整理しておこうという趣旨です。 実装したものはCREATE TABLEとDMLがある程度カバーされたおもちゃですが、自作ストレージエンジン開発のためのドキュメントはなくなっていく一方なので(MySQL internal documentを含む既存のドキュメント・ブログ・

    MySQLでredis storage engineを作った - tom__bo’s Blog
  • RedisからOSコマンドを実行する攻撃方法(SLAVEOF編) - knqyf263's blog

    はじめに 前回の記事で、誤ってインターネットに開放されたRedisを操作してOSコマンド実行するまでの攻撃方法を説明しました。 knqyf263.hatenablog.com こちらの方法ではCONFIG SETを使っていたのですが、最近コンテナが利用されることが増えたために刺さりにくくなっています。また、Redisの実行ユーザの権限が強い必要があったり、ドキュメントルートのpathを予測する必要があったりといった制約もありました。そういった制約を回避する方法が発表されていたので試してみました。 さらに、前回はRedisが完全に操作できる前提を置いていましたが今回は更に難しくSSRFのみが使える状況が想定されています。SSRFについては調べたら出ると思うので割愛しますが、今回の場合は簡単に言うと「Redisは公開されていないが、公開されているWebサーバなど経由で攻撃者が内部のRedisに

    RedisからOSコマンドを実行する攻撃方法(SLAVEOF編) - knqyf263's blog
  • pvpool〜メルカリの商品閲覧数カウントアップの裏側〜

    メルカリでは出品されている商品の閲覧数を「出品した商品」の一覧や「いいね!した商品」の一覧画面から見ることができます。以下は「いいね!した商品」の一覧画面です。(開発版アプリの画面になります) 赤い枠で囲まれている部分がそれぞれの商品の閲覧数になります。今回紹介する閲覧数のカウントアップのバックエンドはGoで開発されています。 データベース上の商品閲覧数のカウントアップ メルカリでは日々大量のリクエストを処理していますが、そういった中でもデータベースへのアクセスはINSERTやUPDATE等の書き込み処理よりもSELECTによる読み込み処理が圧倒的多数を占めます。(メルカリでは、データベースには主にMySQLを利用していますが、サービスやリージョンによってはGCPが提供しているCloud DatastoreやCloud Spannerを利用している箇所もあります) 商品が閲覧される時に実行

    pvpool〜メルカリの商品閲覧数カウントアップの裏側〜
  • 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
  • Redis の障害を想定した避難訓練を行いました - Pepabo Tech Portal

    こんにちは、EC 事業部のフロントエンドエンジニアのおいちゃん(@inouetakuya)です。先日、社内で Redis の障害を想定した避難訓練を行ったので紹介します。 背景 カラーミーショップ では、以前は Redis を利用していていましたが、ここ一年の間に用途が変わってきました。つまり、以前はコンテンツのキャッシュやセッションの保存先だったものが、いまでは非同期処理のためのキューとして使われるようになり、かつその処理には決済に関わるものも含まれています。 つまり Redis にダウンタイムが発生すれば、それがそのままビジネス面でのダメージに直結します。そこで Redis の自動フェイルオーバーを実現するため、インフラチームとともに Redis Sentinel の導入を進めてきました。 解決したい課題 Redis Sentinel を扱うのははじめてだったので、当初は「当に自動

    Redis の障害を想定した避難訓練を行いました - Pepabo Tech Portal
  • RedisサーバのCPU負荷対策パターン - ゆううきブログ

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

    RedisサーバのCPU負荷対策パターン - ゆううきブログ
  • なぜ私の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
  • 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アプリケーションパターン | おそらくはそれさえも平凡な日々
  • domesticlion.net

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

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

    Redis を使って応答時間を半分にした話 | FiNC Developers Blog
  • redis-pyの使い方 辞書とか - Qiita

    import redis r = redis.Redis(host='localhost', port=6379, db=0) #全て消す r.flushall() #hashを保存 #key_nameにdictをsetできる r.hmset(key_name, dict) #1個ずつ保存の場合 r.hset(key_name, field_name, val) #hashを取得 r.hgetall(key_name) #hashのkeyのみ r.hkeys(key_name) #hashのvalueのみ r.hvals(key_name) #指定したfieldのみ r.hget(key_name, field_name) #指定したkeyとfieldをインクリメント r.hincrby(key_name, field_name, value) #fieldの存在チェック r.hexist

    redis-pyの使い方 辞書とか - Qiita
  • Google

    世界中のあらゆる情報を検索するためのツールを提供しています。さまざまな検索機能を活用して、お探しの情報を見つけてください。

  • Itamaeレシピ集 - Ruby/nginx/MySQL/Redis/etc - 珈琲駆動開発

    Itamaeを使ってみる。 選定基準は、 Rubyの内部DSLで書きたい Ansibleだとそのご期待に添えない でもchefはフルスタックすぎて学習コストが高い... ということでItamae :+1: :+1: みたいな感じです。基的にRails使うような想定をしております! 構成 以下の構成を目標にがんばります。 rbenv Ruby 2.2.3 MySQL nginx Redis (yum update) Capistrano Railsのデプロイ先のサーバーの設定をしたいので、先にCapistranoの設定をしておきました。 Capistranoの設定は割愛。以下の記事を参考にしてくださると助かります。 totutotu.hatenablog.com itamae itamaeをインストールします。 $ gem install itamae 以下に、この記事の順番でitamae

    Itamaeレシピ集 - Ruby/nginx/MySQL/Redis/etc - 珈琲駆動開発
  • Redis Clusterでデータをパターンで削除する - Qiita

    結論 正攻法はないのでスクリプトを書く 概要 Redisデータをパターンで削除する方法は Redisのパターンに一致するキーを削除 などの記事で紹介されていますが(とはいえ正攻法ではない)、Redis Clusterを使用していると、keyのprefixが同じでもデータがノードに分散してしまって一気に参照や削除するのが難しくなります。 そもそもリリース環境でそんなことをすることはほぼないのですが、開発環境からRedis Clusterを使っているとちょっと困ります。 間違えてぶっ壊れたデータを保存してしまった場合にえいやっと削除したいときにどうするか。 スクリプト 結果から言うと、こういうスクリプトを書くのが一番早いです。 #! /usr/bin/env python import sys import commands print sys.argv # ノードは自分で設定してくだしあ n

    Redis Clusterでデータをパターンで削除する - Qiita
  • デブサミ2016「大規模Redisサーバ縮小化の戦い」講演メモ #devsumi - 元RX-7乗りの適当な日々

    メモメモ。泥臭い話で面白かったです。 「大規模Redisサーバ縮小化の戦い」 駒井 祐人 氏 (株)アカツキ ゲームのサーバサイド機能開発、インフラの設計構築・保守運用 Redisとは インメモリDB 5種類のキーバリューのデータ型 ファイル永続化オプション システムの問題点 EC2サーバが20台に対して、AWSのElasticCache(Redis)が64台あった なぜ64台あったかというと、リリース直後にRedisの負荷問題があり、8台 => 64台になった 調査するとkeys("")を実行している箇所があった 当然お金がかかる(cache.m3.large * 64台 = 約135万円/月) 冗長化しんどいし、設定ファイルの記載も辛い ので、縮小化と冗長化の対処をしたい 現状整理 格納されているデータ フレンド情報、セール情報、ランキング情報 キーの件数 1サーバに8DB、1DBあた

    デブサミ2016「大規模Redisサーバ縮小化の戦い」講演メモ #devsumi - 元RX-7乗りの適当な日々
  • nginx, redisの同時接続数を増やす - あんこの成長記録

    node+websocketを使っていて、nginx, redisあたりの同時接続数を増やしたいなぁと思って調べたのでめも。 一番詳しかったのはこちらの記事。 Linux サーバでの「Too many open files」対策について - akishin999の日記 簡単にまとめると、 ulimit -nで開けるファイルディスクリプタの上限を設定できる /etc/security/limits.confを編集することでも設定できる daemonだと上記の設定が有効にならない /etc/sysconfig/initに設定すればいけるけど、ちょっとやり過ぎなきもする イマココ で、いろいろ調べていたら、nginx, redisそれぞれにconfファイルに指定できるオプションがあるのを教えてもらった。 nginxはworker_rlimit_nofile, worker_connections

    nginx, redisの同時接続数を増やす - あんこの成長記録
  • redis-cli monitor のログをプロファイルするツールを作った - @Konboi memo

    TL;DR rmlp という redis-cli monitor で出力されたログのプロファイラを作りました redis-cli monitor のログを調べる必要がある時は、使ってみて下さい。 はじめに 時間帯によってはredis serverのcpu使用率が高くなるときがあった アプリのコードレベルでは cache や session をそれぞれ個別に指定できるようになっている それでも分けて負荷が下がる確証もなかったため、 コマンド、keyの利用比率を確認するためredis-cli monitor を実行して調べる事にしました keys ではだめなのか echo keys * | redis-cli > keys.log でkeyがどの程度あるかは調べられますが、実行される頻度が分からないので負荷を見ながら redis-cli monitor で実際に使われているkeyやコマンドを調

    redis-cli monitor のログをプロファイルするツールを作った - @Konboi memo