タグ

Redisに関するrikubaのブックマーク (11)

  • 未ログインでも叩けるAPIエンドポイントにレートリミットを導入する

    先日だれでもAIメーカーというWebサービスをリリースしました。このサービスは例によってOpenAI APIを使っており、トークンの使用量がランニングコストに大きく影響します。 また、気軽に使ってもらえるよう未ログインでも使用できる仕様にしているため、気をつけないと悪意のある人に大量にトークンを使用されてしまう可能性があります。 ノーガードだとどうなるか 例えば、POST /api/askという「リクエストbodyのpromptの値を取り出し、OpenAI APIのChat Completionsに投げる」という単純なエンドポイントを作ったとします。 「未ログインでも使ってもらいたいから」と認証を一切しなかった場合どうなるでしょうか? 悪意のある攻撃者に見つかれば、promptを上限ギリギリの長さの文章に設定したうえで、/api/askに対してDoS攻撃するかもしれません。 トークンを大量

    未ログインでも叩けるAPIエンドポイントにレートリミットを導入する
  • Redis Streamsを活用したイベントドリブンアーキテクチャの構築事例 - DMM inside

    Dagger Go SDK vs Shell in GitHub Actions ~ モノレポのCIの実装をGoで実装するまでの道のり ~

    Redis Streamsを活用したイベントドリブンアーキテクチャの構築事例 - DMM inside
    rikuba
    rikuba 2023/03/01
  • Next.jsと型安全session

    Next.jsをBFFサーバーで使う時、セッションを使いたいケースもあるかと思います。この際にnext-session が結構便利で一工夫すれば型安全なセッション管理ができるので紹介です。 next-sessionのメリット expressでRedisなどを利用してセッション管理する例はGoogleで調べれば結構出てきます。Next.jsでもexpressをカスタムサーバーとして利用すれば、expressのエコシステムが利用できるのでNext.jsでセッション管理をしたいならこれも1つの案です。一方でnext-sessionを利用する場合にはexpressを必要としないので、expressの実装や設定が当然不要だったり、依存関係を減らせるというメリットがあります。 next-sessionの導入 installはいつものやつです。 next-sessionでセッションを利用するには以下の実

    Next.jsと型安全session
  • Redis Explained

    Redis Explained InfographicWhat is Redis?Redis (“REmote DIctionary Service”) is an open-source key-value database server. The most accurate description of Redis is that it's a data structure server. This specific nature of Redis has led to much of its popularity and adoption amongst developers. 👋🏾You are reading Architecture Notes! Crave some byte-sized bites of this? Join me on Twitter. If it's

    Redis Explained
  • Dive Deep Redis ~ 入門から実装の確認まで - hayashier Tech Blogs

    ——————————————————————————————————————————————————— Redis(REmote DIrectory Server)Redisは例えば以下の特徴を持つLLOOGGを元としたインメモリの非リレーショナルのデータベースです。 String, List, Hash, Set, Sorted Setに代表される豊富なデータ型シングルスレッド処理イベント駆動処理 by aeライブラリ通常RESPプロトコルによるクライアント/サーバーモデルでリクエスト/レスポンスデータは条件を満たす場合にメモリ最適化されて保存。CPUとのトレードオフRAXを利用したメモリ利用量の最適化(Redis 4.0~)この記事では、入門から始まり、実装をより意識することで深く理解することを目標としています。 以下の説明中の(*)マークは、特にVanilla Redisでの話となり

    Dive Deep Redis ~ 入門から実装の確認まで - hayashier Tech Blogs
    rikuba
    rikuba 2022/05/10
  • Redisのデータ永続化

    インメモリDBとデータの永続化 前回のRedisの紹介では、Redisの特長や導入手順、基的な使い方についてご紹介しました。稿では、インメモリデータベースのデータ永続化についてご紹介します。 Redisはインメモリデータベースであるため、サーバプロセスが終了するとメモリ上のデータも消えてしまいます。そこで、Redisはサーバプロセス終了後もデータを保持するための2種類の機能が用意されています。 RDB Redisでは特定の時点のスナップショットをRDBファイルとして保存することができます。RDBはデータベースのダンプファイルに相当します。SAVEコマンドおよびBGSAVEコマンドで現時点のスナップショットを保存できます。また、設定により、一定の書き込み数と時間の経過により自動的にデータを保存することもできます。デフォルトの設定は以下のようになっており、条件を満たした場合にデータが自動保

    Redisのデータ永続化
    rikuba
    rikuba 2022/05/10
  • 無料で使えるデータベースUpstashをご存知、ないのですか!?

    Intro 最近とあるデータベースに関する記事を読んだのですが、Upstashについて誰も言及しておらずヤバいなと思ったので紹介することにしました。 ちなみに私も今日はじめてアカウント登録するのでご安心ください。 ゴールデンウィークは色々始めたくなるものです。 Upstashはサーバーレスデータベースを提供するサービスです。 Redisを主に扱っていますが一応Kafkaも使うことができます。 詳しく調べた感じだともう一つぐらい使えるデータベースが増えそうな気がしたので様子見していたのですが、 3月中旬に約2.3億円の資金調達を行いしばらくは既存サービスの強化を行うようなのでとりあえず使ってみることにします。 Upstash 様々な特徴がありますが特筆すべき点として、AOFモードで永続性が常に有効になっている点が挙げられます。 つまりRedisでありがちなキャッシュやエフェメラル用途で使える

    無料で使えるデータベースUpstashをご存知、ないのですか!?
  • Redis persistence

    How Redis writes data to disk Persistence refers to the writing of data to durable storage, such as a solid-state disk (SSD). Redis provides a range of persistence options. These include: RDB (Redis Database): RDB persistence performs point-in-time snapshots of your dataset at specified intervals. AOF (Append Only File): AOF persistence logs every write operation received by the server. These oper

    rikuba
    rikuba 2022/03/18
  • Install Redis

    Install Redis on Linux, macOS, and Windows This is a an installation guide. You'll learn how to install, run, and experiment with the Redis server process. While you can install Redis on any of the platforms listed below, you might also consider using Redis Cloud by creating a free account. Install Redis How you install Redis depends on your operating system and whether you'd like to install it bu

    rikuba
    rikuba 2022/03/17
  • Upstash: Serverless Data Platform

    import { Redis } from '@upstash/redis' const redis = new Redis({ url: 'https://obi-wan-kenobi-31346.upstash.io', token: 'TOKEN', }) const data = await redis.set('foo', 'bar');// Producer import { Kafka } from "@upstash/kafka" const kafka = new Kafka({ url: "https://dart-vader-9500-eu1-rest-kafka.upstash.io", username: "USERNAME", password: "PASSWORD", }) const p = kafka.producer() const res = awai

    Upstash: Serverless Data Platform
  • システム開発で得たRedis利用ノウハウ | フューチャー技術ブログ

    こんにちは。初投稿です。 2012年新卒入社の竹内です。入社当時を振り返るとOracle10g,11gを良く利用していおり、データモデリングなどテーブル設計が好きで、2018年4月ぐらいまでRDBとバッチに浸ってました。 さて、現在プロジェクトでRedisを使っているのですが、いままでRDB人間だっただけにKVSやRedisならではの特徴に四苦八苦してます。 苦しんだ分、色々な知見を得ることができているので、その内容をご紹介します! 対象者 Redisの業務システム導入を検討している方 RDBとRedisの違いを知りたい方 現場的なRedisの利用方法を知りたい方 書いてないこと データ型やコマンドなど、HelloWorld的に公式ドキュメントを見て得られる情報 インストールなど、Redisを利用できるまでの手順 フェイルオーバーやバックアップをはじめとする運用に関する内容 データ永続化に

    システム開発で得たRedis利用ノウハウ | フューチャー技術ブログ
    rikuba
    rikuba 2019/08/21
  • 1