SpringBootベースのオンラインショートチェーン生成システム(ソースコード付き)

序文

オンライン ショート リンク ジェネレーターである SpringBoot に基づくオンライン ショート リンク生成システムを共有します。

完全なプロジェクトのソースコードは記事の最後にあります。自分でダウンロードできます~

1. 機能を実現する

1. 長いリンクを短いリンクに変換します。短いリンクにアクセスすると、302 によって元の長いリンクにリダイレクトされます。

2. 短いチェーン有効期間の設定をサポート

3. 訪問数の記録をサポート

2. インターフェース表示

3. 技術の選択

頼る 説明する
スプリングブーツ 基本的な枠組み
タイムリーフ テンプレートエンジン
Jdbcテンプレート 永続層フレームワーク
レディス キャッシュ
グアバ ハッシュアルゴリズム、ブルームフィルター

4. ロジックを理解する

1. MurmurHash アルゴリズムを使用して、元の長いリンクを 32 ビットのハッシュ値にハッシュし、そのハッシュ値を短いリンクである BASE62 エンコードに変換します。

2. ユーザーがショートリンクにアクセスすると、Redis にキャッシュがあるかどうかを確認し、存在する場合はキャッシュ時間を更新します。キャッシュに存在しない場合は、データベースに移動して検索し、検索が成功した場合は、 、Redis キャッシュに追加され、元の長いリンクに 302 リダイレクトされ、リンクの訪問数が自動的に増加します。データベースに存在しない場合は、404 ページにジャンプします。

5. 技術的な紹介

1、マームルハッシュ

MurmurHash は、一般的なハッシュ取得操作に適した非暗号化ハッシュ関数です。MD5 などの他の一般的なハッシュ関数と比較して、MurmurHash のランダム分散特性は、強い規則性を持つキーに対してより優れたパフォーマンスを発揮します。非暗号化ということは、MD5 と比較して SHA 機能のパフォーマンスが高くなければならないことを意味します (実際、そのパフォーマンスは MD5 などの暗号化アルゴリズムの 10 倍以上です)。MurmurHash には 32 ビット、64 ビット、および 128 ビットの実装があり、32 ビットは約 43 億の短いリンクを表すのに十分です。Java が使用される場合、  Google の
guava または hutool
に対応する実装があり、ここでは guava が使用されます。

2、base62

MurmurHash によって生成されるハッシュ値の 10 進数は最大 10 桁ですが、ショート リンクの長さをさらに短縮するために、ハッシュ値を Base62 エンコードに変換すると、最大長はわずか 6 文字になります。

3. 301 リダイレクトと 302 リダイレクトの違い

  • 301 は、永続的なリダイレクトを表します 。つまり、長いリンクを取得するための最初のリクエストの後、ブラウザが次に短いリンクをリクエストするとき、短い URL サーバーをリクエストせず、ブラウザのキャッシュから直接取得します。短縮URLのクリック数をサーバーレベルで取得することができないため、そのリンクがたまたまあるアクティビティのリンクだった場合、そのアクティビティの影響を分析することができません。したがって、通常は 301 を使用しません。
  • 302 は、一時リダイレクトを表します 。つまり、短いリンクをリクエストするたびに、短い URL サーバーをリクエストすることになります (ブラウザーのキャッシュを暗示するために応答で Cache-Control または Expired が使用されている場合を除く)。クリック数をカウントするためにサーバーに接続するため、302 が使用されますが、サーバーに少し負担がかかりますが、データが非常に重要な今日では、このコードにはそれだけの価値があるため、302 をお勧めします。

6. プロジェクトのソースコードのダウンロード

プロジェクトのソース コードのダウンロード リンク: https://download.csdn.net/download/weixin_47367099/85397360

SpringBoot が開発したオンライン ショート チェーン生成システムのソース コードのダウンロードはこちら SpringBoot をベースにして機能を実現するオンライン ショート チェーン生成システムのソース コード 1. 長いリンクを短いリンクに変換し、短いリンクにアクセスする 詳細なダウンロード リソースと学習資料については、CSDN ダウンロード チャネルにアクセスしてください。https ://download.csdn.net/download/weixin_47367099/85397360

おすすめ

転載: blog.csdn.net/qq_41701956/article/details/124825393