タグ

redisに関するkomlowのブックマーク (44)

  • Hello, Redis Stack - Redis

    Today we’re thrilled to announce Redis Stack. Redis Stack consolidates the capabilities of the leading Redis modules into a single product, making it easy for developers to build modern, real-time applications with the speed and stability of Redis. Prologue At Redis, we’re building a real-time data layer to meet the universal demand for responsive, low-latency applications and services. To build a

    Hello, Redis Stack - Redis
    komlow
    komlow 2022/03/25
  • A Multithreaded Fork of Redis That’s 5X Faster Than Redis | KeyDB - The Faster Redis Alternative

    What if I told you there is a fork of Redis that can run 5x faster with nearly 5x lower latency. What if you no longer needed sentinel nodes and your replicas could accept both reads and writes? This could provide the potential to achieve a 10x reduction in the amount you shard. This article looks at KeyDB which is an open source, multithreaded fork of Redis. We will review the latest benchmarking

    A Multithreaded Fork of Redis That’s 5X Faster Than Redis | KeyDB - The Faster Redis Alternative
    komlow
    komlow 2019/10/08
  • 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
  • アルゴリズムとデータ構造から理解するRedis / Learn Redis from Internal Algorithms and Data Structures

    2019年新卒研修で使った資料です。 内部実装の雰囲気を感じとりながら、Redisについて理解を深める研修を行いました。 以下の内容について学びました。 1. Redisの概要 2. 社内での利用方法 3. 正しい用法用量 Redis についての前提知識は必要としていません。…

    アルゴリズムとデータ構造から理解するRedis / Learn Redis from Internal Algorithms and Data Structures
    komlow
    komlow 2019/04/22
  • Improving key expiration in Redis

    Recently, we had an interesting issue where we ran into some performance issues in our Redis clusters. After a lot of time spent debugging and testing we were able to reduce Redis’s memory use in some of our clusters by up to 25% with changes to key expiration. Internally Twitter runs multiple cache services. One of them is backed by Redis. Our Redis clusters store data for some Twitter’s most imp

    Improving key expiration in Redis
    komlow
    komlow 2019/04/16
  • Redix

    Redix redix is a key-value datastore with pluggable storage engines and redis protocol as interface, documentation & learn more Contributions You’re welcome!

    komlow
    komlow 2019/01/07
  • New – Redis 4.0 Compatibility in Amazon ElastiCache | Amazon Web Services

    AWS News Blog New – Redis 4.0 Compatibility in Amazon ElastiCache Amazon ElastiCache makes it easy for you to set up a fully managed in-memory data store and cache with Redis or Memcached. Today we’re pleased to launch compatibility with Redis 4.0 in ElastiCache. You can now launch Redis 4.0 compatible ElastiCache nodes or clusters, in all commercial AWS regions. ElastiCache Redis clusters can sca

    New – Redis 4.0 Compatibility in Amazon ElastiCache | Amazon Web Services
  • Redis at LINE

    This document summarizes how LINE messaging uses Redis. It discusses: - How LINE has scaled Redis from 3 nodes in 2011 to over 14,000 nodes today to support over 25 billion messages per day. - The key ways LINE uses Redis, including for storing sequences, caches, secondary indexes, and local queues. - Challenges LINE faced in scaling their in-house Redis cluster to over 1,000 nodes and workarounds

    Redis at LINE
    komlow
    komlow 2018/05/31
  • kubernetesでRedisClusterを構築してみた - Qiita

    概要 kubernetesでredis cluster構築してみた備忘録 https://github.com/kelseyhightower/kubernetes-redis-cluster ほぼこちらをそのまま使っている Redis server version、3.2.0 データの永続化はしない redisクラスタ基master×3にレプリカ用 slave×3 redis (loadbalancer) | |- [ redis-1(master) ] - [redis-4(slave)] |- [ redis-2(master) ] - [redis-5(slave)] |- [ redis-3(master) ] - [redis-6(slave)]

    kubernetesでRedisClusterを構築してみた - Qiita
  • RedisサーバのCPU負荷対策パターン - ゆううきブログ

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

    RedisサーバのCPU負荷対策パターン - ゆううきブログ
  • RedisのSorted Setsで簡易的な遅延実行Queueを作って迅速にLINE LIVEのPC配信対応をリリースした話 - LINE ENGINEERING

    ! This post is also available in the following languages. 英語, 韓国語 みなさんこんにちは、LINE LIVE開発のYappoです。 今回は先日リリースされました一般向けのPC配信機能を実装するときに作った簡易的な遅延実行Queueについて書いていこうと思います。 関連エントリ:LIVE PRESS 公式ブログ – ゲーム実況にもぴったり!LINE LIVEでPC横型ライブ配信を試してみよう 背景 今までのLINE LIVEでの配信方法としては、アプリ上で直接配信する方法と、公式アカウント向けの専用画面(LINE OFFICIAL ACCOUNT MANAGER)とRTMPソフト(もしくは専用機材)を利用してPCからの配信する方法がありました。 この2つの方法は全く違う仕組みで実装されるように見えますが、実は基となる設計は同じで

    RedisのSorted Setsで簡易的な遅延実行Queueを作って迅速にLINE LIVEのPC配信対応をリリースした話 - LINE ENGINEERING
    komlow
    komlow 2017/06/22
  • Redisのメモリ使用量がmaxを超えた場合の挙動 - Gaishimo

    Redisのメモリ使用量がmaxを超えた場合の挙動について検証してみた。 環境: version: 2.4.16 Redisではタイムアウト時間を設定したキーは時間を超えると自動で削除され、タイムアウト時間を設定しないと永続的に保存される。 また、メモリの空き領域がなくなった場合、期限のあるものから削除されていく(デフォルトの設定の場合)。 注意すべき点は、期限が設定されていないキーは削除対象にならないということである。 実際にその挙動を検証してみた。 まず、検証しやすいようにメモリの使用可能な量を以下の値に設定しておく(redis.conf) #新たにキーを保存した際にmaxmemoryエラーにならないぎりぎりの値 maxmemory 910KB maxmemory-policy は 以下を設定 #LRUアルゴリズムを使用して期限切れになったセットのキーを削除 maxmemory-pol

    Redisのメモリ使用量がmaxを超えた場合の挙動 - Gaishimo
    komlow
    komlow 2017/05/15
  • Redis の maxmemory-policy について - @kyanny's blog

    Redis をキャッシュストレージとして利用する場合、 maxmemory によって利用可能なメモリの最大値を指定できる。 maxmemory の値を超えるデータの追加が発生した場合の振る舞いを maxmemory-policy によって指定できる。デフォルトの maxmemory-policy は volatile-lru で、 LRU アルゴリズムに従って古いキーの値が優先的に破棄される。 maxmemory-policy は数種類から選べるが、そのうち noeviction を選んだ場合、古いキーの値は破棄されず、新規追加はエラーとなる allkeys-lru または allkeys-random を選んだ場合、 expire の有無に関わらず、全てのキーの中から破棄対象が選ばれる その他を選んだ場合、 expire がセットされているキーのみが破棄対象となる という違いがある。実装

    Redis の maxmemory-policy について - @kyanny's blog
    komlow
    komlow 2017/05/15
  • 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アプリケーションパターン | おそらくはそれさえも平凡な日々
    komlow
    komlow 2016/12/14
  • Lua: A Guide for Redis Users

    You’ve heard that Redis has an embedded scripting language, but haven’t given it a try yet? Here’s a tour of what you need to understand to use the power of Lua with your Redis server. Hello, Lua! Our first Redis Lua script just returns a value without actually interacting with Redis in any meaningful way: This is as simple as it gets. The first line sets up a local variable with our message, and

  • Distributed Locks with Redis

    A distributed lock pattern with Redis Distributed locks are a very useful primitive in many environments where different processes must operate with shared resources in a mutually exclusive way. There are a number of libraries and blog posts describing how to implement a DLM (Distributed Lock Manager) with Redis, but every library uses a different approach, and many use a simple approach with lowe

    komlow
    komlow 2016/04/22
  • Redis を LRU キャッシュとして使う — Redis Documentation (Japanese Translation)

    Redis を LRU キャッシュとして使う¶ Redis をキャッシュとして使う際、新しいデータを追加するときに自動的に古いデータを追い出すようにできると便利です。この振る舞いは、人気の高い memcached システムのデフォルトの振る舞いであるため、開発者の間では非常によく知られています。 LRU は、実際にはエビクション・メソッドのひとつにすぎません。このページでは Redis のメモリ使用量を制限するための ‘maxmemory’ ディレクティブについて、より一般的なトピックを扱います。また、Redis で使用されている LRU アルゴリズムについても扱います。Redis の LRU アルゴリズムは、実際には正確な LRU ではなく、その近似です。 メモリ設定のためのディレクティブ¶ ‘maxmemory’ ディレクティブは、データセットに対して指定された量のメモリを使用するよう

    Redis を LRU キャッシュとして使う — Redis Documentation (Japanese Translation)
    komlow
    komlow 2016/02/03
  • Redis 本番障害から学んだコードレビューの勘所

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Redis不適切利用による問題は番運用が始まってから顕在化することが多く、時限爆弾みたいな存在です。事前に防ぐにはコードレビュー段階で叩くしかありません。 Redisはスクリプト言語と相性が良く、適切に利用するとRDBと比較し驚くほど高速なプログラムを組むことができます。昨年尊敬する先輩にコードレビューで斧100くらい(レビューコメント)投げられて血まみれになりつつ学んだことを、まとめて書いてます。概要は『消えても良いデータならRedis』 Redisのメモリが溢れたら... (この話は事実ではなくファンタジーです。) 深夜電話で叩

    Redis 本番障害から学んだコードレビューの勘所
    komlow
    komlow 2015/10/27
  • Redis作者自身によるRedisとMemcachedの比較 | Yakst

    Redisの作者antirez氏自らによる、memcachedとRedisの長所短所の比較。特に、Redisを単なるキャッシュ用アプリケーションとしてmemcachedと比較することの間違いと、それぞれの向いている使用方法についての私見。 あなたが私と面識があるなら、私が競合製品があることが悪いと考える人間でないことはご存知でしょう。ユーザーに選択肢があることは当にいいことだと思っていますし、だからこそ他の技術とRedisを比較するようなことはほとんどしませんでした。 しかし、最適なソリューションを選ぶためには、ユーザーは正しく情報を持たねばならないのも確かです。 この記事を書くのは、有名なライブラリであるSidekiqの作者として知られるMike Perhamが、Redisのバックエンドストレージとしての使い方を書いた記事を読んだのがきっかけです。従って、私はMikeがRedisに「反

    Redis作者自身によるRedisとMemcachedの比較 | Yakst
  • Redis による分散ロック — Redis Documentation (Japanese Translation)

    Redis による分散ロック¶ 異なるプロセス同士が、相互に排他的な方法で共有リソースに対して操作を実行する、という環境において、分散ロックは非常に役に立ちます。 Redis を使った DLM (Distributed Lock Manager) の実装については、多くのライブラリやブログポストがあります。しかし、ライブラリごとに異なるアプローチがとられており、またその多くは、より複雑なデザインと比較するとシンプルで、そのぶん保証される内容が低いアプローチとなっています。 このページは、Redis 上で分散ロックを実装するにあたり、標準的なアルゴリズムを提供することを目指すものです。私たちはここで Redlock と呼ぶアルゴリズムを提供します。これは DLM 実装の一種で、よく見かけるような、ひとつのインスタンスを使うアプローチよりも安全である、と私たちは考えています。コミュニティがこの

    komlow
    komlow 2015/08/13