このような短い鎖の長鎖を変換する必要のテキストメッセージング、ジャンプリンクを持って来るためにプッシュ必要、今回のようないくつかのビジネスシナリオ、
どのくらいの連鎖移動短鎖?実際には、長鎖および短鎖プロセスは何の関係も生成されていない、唯一の接点は、後世代DOに関連しています
1:短鎖を生成します
デフォルト6短鎖によって生成されたオンラインの実用的な作業だけでなく、従来の2つの方法のおそらく比較、と組み合わせます
ウェイ:+単純なアルゴリズムをシフトすることによって乱数を生成し、
最初のステップは:シフトを行い、乱数0,1を追加します
以下のために(INT I = 0; I <36; I ++ ){ int型ランダムにRandom.nextInt =(2 )。 乱数 =ランダム+(乱数<< 1 )。 }
0,1プラス乱数は、衝突を防止するために、本の衝突確率は、受信機の範囲に属する、ほぼ1/2 36の電力であります
これまでのところ、乱数乱数を生成されています。サイクル36回は、言うことに行く理由について
第二段階:短鎖への乱数をマッピング6
以下のために(INT iは= 0; I <6; I ++){ charList.append(char62 [(INT)(K&乱数)])。
randomNum =(randomNum >> 6)。
}
Kとは何ですか?Kを取り出しそれに対応するバイナリは0x3F 63,16であり、62進数を得るために、乱数演算を行います
62進構図:26の大文字小文字+26 +10数字
次いでrandomNum右6、36サイクル、及びその頂部に対応する乱数を生成します
36サイクルは、各シンボルのランダムアウトの組み合わせに対応する、6部に分け0
第二の方法:信号送信機
データベースから、主キーのIDによって、このようにして、次にIDを62進数6にマッピングされ、この記事では説明します
https://blog.csdn.net/xlgen157387/article/details/80026452
このように、分散型発電の場合と同様に、圧力データを検討します。個人的な考えは、セグメント化されたテイクを葉発電米国のグループを参照することができます
ここでは、短鎖が生成されているが、短期および長期のチェーンがどのようにマップするために?
2:ロングとショートチェーンマッピング
対応関係がデータベースに永続化する確かですが、多くの時間によって複雑に一度、圧力が比較的大規模なデータベースである、あなたは、キャッシュの使用を検討する必要があり、彼らはそれを保存するために、すべてのマッピング関係を置くことができないときの優先使用をRedisの。
まだMD5と長いサブメートルの短鎖鎖と、問題の一部を解決するための基本となるサブテーブルに依存する必要があることを、一意のキー行われました。ここでの唯一の重要な役割は、短鎖の衝突を防ぐためである短鎖衝突時の再試行することができます。
キャッシュでの私たちの長いと短鎖の間のマッピングがあり、それらはある最近使用の原則と一致考えることができ、我々は、キャッシュ内のロングとショートの鎖マップの唯一の「ホットスポット」を保持して、大幅に低減することができますキャッシュのサイズ