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 投稿

JWT ベースの OpenAPI 認可フロー:ThinkPHP と Gin の実装比較

概要 マルチテナント SaaS プラットフォームでは、外部システムがデータを安全に取得できるよう OpenAPI を公開する。本記事では「アプリ鍵 + シークレット」方式で発行される短期 RefreshToken を用いた認可フローを、PHP(ThinkPHP)と Go(Gin)でそれぞれ実装し、設計とコードを比較する。 認可フローのステップ テナントごとに一意の ClientID / ClientSecret を事 ...

5月21日 17:50 投稿

Redisの高度なテクニック:底層ストレージデータ構造とメモリ最適化

はじめに Redisは高性能なキャッシュミドルウェアとして知られており、他のキャッシュシステムと比較して多様なデータ構造をサポートしています。String、List、Set、SortedSet、HashなどがRedisが外部でサポートするデータ構造ですが、内部でのストレージ方法は伝統的な理解とは異なります。Redisは各データ構造タイプに対して最適化を行っており、異なるデータに応じて異 ...

5月21日 03:36 投稿

CentOS 7.6環境におけるRedis 6.2.6のインストールとサービス管理設定

CentOS 7.6にRedis 6.2.6を導入する際、ソースコードからのビルド(wgetでの取得およびmake)が完了した後のステップとして、システムサービスへの登録方法には大きく分けて2つのアプローチがあります。本記事では、付属のユーティリティスクリプトを利用する方法と、推奨されるsystemdユニットファイルを手動で作成する方法について解説します。 1. 付属スクリプト「inst ...

5月20日 21:37 投稿

Redis分散ロックとトランザクションの実装

1. Redis分散ロックの仕組み Redisにおける分散ロックは、複数のクライアントが同一リソースを同時に操作する競合状態を防ぐために使われます。ロック取得にはSETNXコマンド(存在しない場合のみ設定)を使用し、成功時は1を返却します。ロックの保持を確実にするため、トランザクション処理とPIPELINEの併用が必要です。 2. トランザクションの役割 RedisではMULTI/EXECコ ...

5月20日 16:21 投稿

Redisのトランザクション処理:MULTI/EXECとLuaスクリプトの比較分析

Redisにおけるトランザクション処理は、主に「MULTI/EXECコマンドによるトランザクションモード」と「Luaスクリプト」の2つのアプローチが存在します。 結論から述べると、それぞれの特性は以下の通りです。 **トランザクションモード (MULTI/EXEC)** * 隔離性を保証します。 * 永続性の保証は困難です。 * 限定的な原子性を持ちますが、ロールバック機能はサポー ...

5月19日 11:33 投稿

Redis 5.0.7ソースコード解析:双方向リンクリスト

Redisにおける双方向リンクリストの実装は、adlist.hとadlist.cというファイルに記述されています。 一、データ構造 Redisで実装されている双方向リンクリストは、一般的な双方向リンクリストと基本的に同じ構造を持っています。 単一ノード: 1 typedef struct listNode { 2 struct listNode *prev; 3 struct listNode *next; 4 void *value; 5 } listNode; ...

5月19日 05:24 投稿

Dockerを用いたRedisクラスタ(1マスター2スレーブ)+ センチネルモードの実装

サーバ環境 サーバ名 IPアドレス OSバージョン マスターサーバ 10.30.10.1 centos7.6 スレーブサーバ1 10.30.10.2 centos7.6 スレーブサーバ2 10.30.10.3 centos7.6 注意点:3台以上のサーバが必要で、2n+1(n≧1)のルールを満たす必要があります。そうでないと、センチネルが自動的にマスター-スレーブを切り替えることができません。 Dockerを使用した ...

5月18日 17:20 投稿