メインロジック:
1、L = 26+26+10 = 62の長さの大文字と小文字とデータを含む文字列LSを決定します
2、L**Nの整数を初期化し、それらをシーケンスとしてプッシュしますredis
3、長い URL を変換する必要がある場合、まず上記のシーケンスから整数 I
4 をランダムに取り出し、整数 I のモジュロを取得し (約数は L)、余りは次の文字に対応します。 LS, take モジュロが完了したら、L で除算して丸め、結果が 0 に等しい場合、モジュロ除算を停止します。それ以外の場合、結果はモジュロのままになります。
5、すべての余りに対応する文字を並べて短い文字列SSを取得します
6、長いURLのmd5ハッシュ値をKEYとして使用し、文字列SSをVALUEとして使用し、それをredisに書き込みます
7 , 文字列SSをKEYとして、長いURLをVALUEとして使用し、redis
8に文字列SSにプレフィックス(短いURLのドメイン名)を付加して、短いURLの結果を返します
9。ユーザーが短縮URLを使用してアクセスすると、短縮URL内の文字列SSを取り出し、それをキーとしてredisから長いURLを取り出し、長いURLにジャンプします
注:
Redis 内のシーケンス番号はほとんど使い果たされているため、時間をかけて増やしてください (いつでも監視するスクリプトを作成できます。数量が 10% 未満になると自動的に数量が増加します)。使用した番号は保存しないでください。
りー