Redisの核心技術とベストプラクティス
漸進的リハッシュ
漸進的リハッシュの実行時、キーバリューペアの操作に基づいてデータ移行を行うだけでなく、Redis自体にも定期的なタスクがリハッシュを実行します。キーバリューペアの操作がない場合、このタスクは周期的に(例えば100msごと)新しいハッシュテーブルに一部のデータを移動させ、これにより全体のリハッシュプロセスを短縮できます。
整数配列と圧縮リ ...
6月13日 16:32 投稿
ユーザー機能実装ガイド:いいね、設定、ブラックリスト管理
機能概要
いいね機能の実装
ユーザー共通設定機能
ブラックリスト機能
電話番号変更機能
1. いいね統計表示
1.1 基本概念
いいね:他のユーザーに対する評価(例:AがBにいいねしても、BがAにいいねしたとは限らない)
フォロワー:自分をいいねしたユーザー
相互フォロー:お互いにいいねした状態
1.2 Dubboサービス
//UserLikeApi.java
public interface UserLikeApi ...
6月13日 00:46 投稿
Docker Compose 実践入門:環境構築から運用コマンドまで
Docker Compose の概要
Docker Compose は、複数のコンテナで構成されるアプリケーションを効率的に定義・実行するためのツールです。YAML 形式の設定ファイルを用いて、アプリケーションに必要なサービス群(データベース、キャッシュ、Webサーバーなど)を記述し、単一のコマンドで一括起動できます。
Compose の中心的な概念は以下の2つです:
サービス (Service): ...
6月11日 23:51 投稿
Canalを活用したMySQLとRedisのデータ一貫性実現
1. はじめに
MySQLとRedis間のデータ一貫性を確保する方法は、一般的にRedisを先に更新してからMySQLを更新する方法、またはその逆の方法が議論されています。しかし、これらのアプローチは実際のアプリケーションシナリオでは完全なデータ一貫性を保証できず、特定の条件下で問題が発生する可能性があります。本稿では、Canalツールを使用してMySQLのスレーブノードになり ...
6月11日 21:08 投稿
Redis 5.0.7 ソースコード解説:ziplistの内部構造と操作
Redisのziplistは、メモリ効率を高めるために設計されたデータ構造です。本記事では、ziplistの内部構造と基本的な操作について詳しく解説します。
データ構造
ziplistの全体的な構造は以下のようになっています(Redisのソースコードコメントから引用):
1 /*
2 <zlbytes> <zltail> <zllen> <entry> <entry> ... <entry> <zlen ...
6月10日 22:01 投稿
Spring BootとVue.jsを用いた大学院入試情報管理システムの設計と実装
概要
情報技術の急速な発展に伴い、大学院入試に関する情報収集方法は従来のオフライン手段からオンラインプラットフォームへと移行しつつある。受験生にとって効率的で正確かつリアルタイムな情報取得ニーズが高まる一方で、既存の情報プラットフォームでは情報の分散化、更新遅延、ユーザーエクスペリエンスの劣化といった課題が顕在化している。これらの問題に対応する ...
6月9日 17:18 投稿
Node.jsを使用してDaprでクラウドネイティブマイクロサービスアプリを構築する0から1の迅速なガイド
Daprは、開発者が分散システムの複雑さに集中せず、柔軟な無状態・有状態アプリケーションを簡単に構築できるポータブルなイベント駆動型ランタイムです。クラウドまたはエッジ環境で動作し、複数のプログラミング言語とフレームワークをサポートしています。Daprは、現代的なクラウドネイティブアプリケーションの構築を大幅に簡素化します。
クラウドネイティブマイクロ ...
6月9日 16:19 投稿
Spring Cache と Redis を用いたキャッシュ統合の実装とカスタム削除処理の設計
アノテーションによるキャッシュ制御の導入方法
Spring Cache を利用して、Redis をバックエンドストレージとして使用する場合の統合手順を解説します。本稿では、主にアノテーションベースの宣言的キャッシュ管理を中心に、設定からカスタマイズまでを網羅します。
1. 必要な依存関係の追加
Maven プロジェクトにおいて、以下の依存を pom.xml に含める必要があります。 ...
6月9日 15:59 投稿
キャッシュシステムにおける3つの問題:ペネトレーション、ブレークダウン、雪崩の原理と解決策
キャッシュペネトレーション
キャッシュペネトレーションは、存在しないデータを照会する状況を指します。キャッシュはヒットしない場合に書き込まれるため、またエラー処理の観点からストレージ層からデータが見つからない場合にはキャッシュに書き込まないため、このような存在しないデータのリクエストは毎回ストレージ層に到達してしまいます。これによりキャッシュの ...
6月8日 19:39 投稿
Celeryを活用した非同期タスク処理の実装
Celeryの概要とアーキテクチャ
Celeryは、Pythonで実装された分散タスクキューシステムであり、大量のメッセージをリアルタイムに処理することに特化しています。主に非同期タスクの実行やスケジューリング機能を提供し、Webアプリケーションのレスポンス向上に貢献します。
システムは以下の3つの主要コンポーネントで構成されています:
メッセージブローカー(Broker) ...
6月7日 20:21 投稿