Redisを用いた分散ロックの実装方法とベストプラクティス

はじめに 分散システムにおいてリソースへの同時アクセスを制御するための分散ロックは、現代の分散アプリケーション開発において不可欠な要素です。本記事では、Redisを利用した分散ロックの実装方法について詳しく解説します。インターネット上には多くのRedis分散ロックの実装例がありますが、その多くは重要な考慮事項を見落としている場合があります。本記事では、堅 ...

5月28日 06:41 投稿

Redissonの分散タスクスケジューリング:スケジュールされたタスクと周期タスク

Redissonの分散タスクスケジューリング:スケジュールされたタスクと周期タスク 分散システムにおいて、従来のスケジュールされたタスクはいくつかの重要な課題に直面します。単一障害点によるタスクの中断、クラスタ環境での重複実行、タスク状態の追跡の困難さなどが挙げられます。RedissonはRedisを基盤とした分散タスクスケジューリング機能を提供し、RScheduledExecut ...

5月28日 02:55 投稿

Redisの4つのモード

主従モード Redisの主従モードは、主サーバーと従サーバーの関係を構築するシンプルな方法です。一対一の主従関係や一対多の主従関係を設定可能です。 主従モードの設定は非常に簡単です。従サーバーの設定ファイルに以下を追加します。 slaveof <master-ip> <master-port> # 例えば # slaveof 192.168.1.197 6379 メリット: 設定が簡単で、柔軟性がありま ...

5月27日 03:23 投稿

Guava + Redis 二段階キャッシュユーティリティの実装

本稿では、GuavaローカルキャッシュとRedis分散キャッシュを組み合わせた二段階キャッシュユーティリティクラスを実装します。この設計は、データ読み取り頻度が高く書き込み頻度が低いシナリオに適しており、リスト型データを効率的にキャッシュするための汎用的なソリューションを提供します。 package com.example.cache.util; import com.alibaba.fastjson.JSON; imp ...

5月25日 18:28 投稿

Redis哨兵とクラスタリングの構築とLVSのDRモデル実践

Redisの哨兵とクラスタリングの仕組みについて説明し、それぞれの設定方法を紹介します。さらに、負荷分散システムであるLVSのDRモデルの動作原理と実践例も解説します。 Redis哨兵の仕組みと設定 Redis哨兵はRedisサーバーの監視と自動フェイルオーバーを行う機能です。主にマスターとスレーブ間の故障切り替えを管理します。 哨兵の設定手順 マスターやスレーブノードの ...

5月24日 06:06 投稿

外部に公開してはならないAPI endpointの対処法

システム開発において、特定のAPIを外部ネットワークに公開せず、内部サービス間でのみ利用できるようにしたい場合、代表的な3つのアプローチが存在する。 内部向け・外部向けでマイクロサービスを分離する ゲートウェイとRedisを活用したホワイトリスト方式 ゲートウェイとAOPによるリクエスト元判定 以下で、それぞれの方案の特徴と実装方法について詳しく解説する。 1 ...

5月23日 20:00 投稿

Spring Bootを使用した分散ロックの実装

Spring Bootを使用した分散ロックの実装 1. 分散ロックとは何か? 分散システムでは、複数のノードが並行してタスクを実行するため、データの一貫性を保証し、リソースの競合を避けるために共有リソースへのアクセスを制御するメカニズムが必要です。分散ロックは、分散環境における並行アクセスを制御するための仕組みで、同一時刻に一つのノードのみがロックを取得できる ...

5月22日 21:29 投稿

Redisにおけるデータ永続化:RDBとAOFの比較

RDB永続化方式 RDBの基本概念 メモリ内のデータセットを定期的にディスクにスナップショットとして保存する仕組み Redisは専用の子プロセスをforkして永続化を実行し、一時ファイルを使用して安全にデータを保存 メインプロセスはIO操作を行わないため高いパフォーマンスを維持可能 デフォルトのスナップショットファイル名はdump.rdbで、設定ファイルで変更可能 Forkプ ...

5月22日 20:33 投稿

Dockerを活用したブログシステムの本番環境構築ガイド

Dockerコマンドリファレンス コンテナ管理において頻繁に使用するDockerコマンドの一覧です。 コマンド 概要 docker pull リポジトリからイメージを取得 docker build Dockerfileからイメージを作成 docker images ローカルイメージ一覧を表示 docker rmi ローカルイメージを削除 docker run コンテナの作成と起動 docker ps 稼働中のコンテナ一覧を表示 ...

5月21日 21:51 投稿

Redis永続化メカニズムの実装と最適化

Redisの永続化方式 Redisはデータ保持のためにRDBスナップショットとAOFログの2種類の永続化方式を提供しています。 各方式の特徴 RDB方式:指定した時間間隔でデータの時点スナップショットを生成します。 AOF方式:実行されたすべての書き込みコマンドをログとして記録し、サーバー起動時に再実行してデータを復元します。 AOFログはRedisプロトコル形式で保存され、新 ...

5月21日 21:45 投稿