短縮URL生成コンバージョン

巴扎黑
巴扎黑オリジナル
2016-12-09 14:43:421269ブラウズ

メインロジック:

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% 未満になると自動的に数量が増加します)。使用した番号は保存しないでください。

りー





声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。