Celeryを活用した非同期タスク処理システムの実装パターン

システムアーキテクチャの設計 分散タスクキューを実装する際、主要コンポーネントとしてワーカープロセス、メッセージブローカー、タスク管理モジュールを設計する必要があります。Redisをメッセージブローカーおよび結果ストレージとして選定した理由は、軽量なインストール要件とCeleryとの高い互換性にあります。システム要件として、タスクのライフサイクル管理、エ ...

7月11日 16:06 投稿

Linux環境でDockerを用いてRedisコンテナとブloomフィルタをインストールする方法

はじめに 多くのプロジェクトでキャッシュとして利用されるRedis。Redisの学習中に、キャッシュのパフォーマンス問題(キャッシュのパニング、ヒット、雪崩)に遭遇しました。その中で、キャッシュのパニング問題に対する解決策の一つとしてブloomフィルタが挙げられました。ブloomフィルタの実装には、Guava、Redisson、RedisBloomなど複数の選択肢がありますが、今回はロ ...

7月10日 21:42 投稿

Redisの永続化データ復元手順

Redisでは、主に2つの永続化方式が提供されています。一つはRDB(Redis Database Backup)、もう一つはAOF(Append Only File)です。それぞれ異なる特徴と利用目的を持っています。以下では、これらの方式を使ってRedisのデータを復元する方法について説明します。 1. RDB(Redisデータベーススナップショット) RDBはRedisの永続化メカニズムの一つで、定期的にデータベ ...

7月10日 20:40 投稿

Sentryバックエンドサービス開発者向けガイド

サービス管理 (devservices) Sentryは開発環境で必要な依存サービスを管理するdevservices抽象化レイヤーを提供します。 sentry devservices [オプション] コマンド [引数] オプション: --help ヘルプ表示 コマンド: attach フォアグラウンドで単一サービス実行 down 全サービス停止 rm 全サービスと関連データ削除 up 依存サービスの起動/更新 ...

7月8日 16:43 投稿

Redisクラスタに接続するPHP環境の構築

Redisクラスタへのクライアント接続 前回の記事でRedisサーバーを正常に構築できた場合、次はPHPアプリケーションからRedisクラスタに接続するための環境を設定します。以下の手順に従って、PHP 7.1環境と関連拡張機能をインストールし、Nginxと連携させて動作を確認します。 1. PHP 7.1および関連拡張機能のインストール まず、PHP 7.1と必要な拡張機能をインストールし ...

7月7日 19:10 投稿

Redis Sentinelモードの設定と使用方法

1. Sentinelの役割 - Redisサーバーの監視を行い、マスターサーバーとスレーブサーバーの状態をチェックします。 - マスターがダウンした場合、自動的にスレーブを新しいマスターに昇格させ、その変更を他のスレーブに通知します。 2. Sentinelの主要な設定 sentinel monitor mymaster 127.0.0.1 6379 1 - 数字1は、1つのSentinelがマスターがダウンしたと判断した場合 ...

7月6日 20:03 投稿

Kubernetes クラスタで Bitnami Redis Helm Chart を用いた Master-Slave レプリケーション環境の構築手順

概要 本記事では、Kubernetes クラスタ上に Redis を Master-Slave レプリケーション構成でデプロイする手順を解説します。Helm パッケージマネージャと Bitnami が提供する公式チャートを活用することで、PV 動的プロビジョニングを前提とした高速な環境構築を実現します。 前提条件 Kubernetes 1.25 以上が稼働していること Helm 3.10 以上がインストール済みであるこ ...

7月6日 00:38 投稿

Spring Boot、AOP、Luaを使用した分散型レートリミットの実践的実装

一、レートリミットとは?なぜレートリミットが必要なのか? 皆さんは北京の地下鉄に乗ったことがありますか?入場時に長蛇の列ができるのはなぜでしょうか?答えは「レートリミット」です!地下鉄の輸送能力には限界があり、一度に多くの乗客が乗り込むとプラットフォームが混雑し、列車が過剰な乗客を乗せてしまうと安全上の問題が発生します。同様に、私たちのプログラ ...

7月5日 22:53 投稿

PhpSpreadsheetのメモリ最適化とPHPExcelからの移行手法

メモリ使用量の削減 PhpSpreadsheetはワークシートごとに各セルあたり約1KBのメモリを消費するため、大規模なブックでは迅速にメモリを消費します。セルキャッシュ機能により、PhpSpreadsheetはセルオブジェクトをメモリ内だけでなく、ディスクやAPCu、Redisなどの外部ストレージに保持できるようになります。これにより大規模ブックのメモリ使用量を削減できますが、デー ...

7月5日 21:09 投稿

Spring BootでのLettuceを用いたRedis統合ガイド

一、Lettuceについて Redisサーバーについては、以前のブログ記事で既に触れていますので、ここでは詳細を割愛します。LettuceとJedisは両方ともRedisサーバーに接続するクライアントプログラムですが、実装方法が異なります。JedisはRedisサーバーに直接接続しますが、マルチスレッド環境ではスレッドセーフではないため、接続プールを使用する必要があります。各Jedisイ ...

7月4日 20:06 投稿