参照してください - https://stackoverflow.com/a/742047/161243URL - インタビュー
アルゴ上記は、我々はデータを格納するDBを使用することを言います。面接官はDBを使用できないと言っています。そして、その場合には、我々はstuctureを持つことができます。そして、
struct st_short_url{
char * short_url;
char * url;
}
ハッシュテーブル - st_short_url* hashTable[N];
今、私たちは、それぞれの時間やbase62に変換される乱数生成されたIDをインクリメントさint id
を持つことができます。私が見
問題:
- このプロセスが終了した場合、私はRAMからint id
のトラックと完全なハッシュテーブルを失います。だから私はそれが永続化されるようにディスクにhashTableを書き続けるのですか?はいの場合は、Bツリーが使用されますか?また、IDをディスクに書き込む必要がありますか?
P.S.ハッシュテーブル+ディスクへの書き込みはデータベースですが、DBMSを使用できない場合はどうすればよいですか?自分の実装を考え出す必要がある場合はどうすればよいですか?
お考えください...
別の質問:一般的に
、我々はURL短縮で無限のリダイレクトを処理する方法は?
ハッシュテーブルとディスクへの書き込みはどのようにデータベースではありませんか? – wallyk
ハッシュテーブルをディスクに書き込むことは、既存のものに頼るのではなく、自分でデータベースシステムを発明したことを除いて、他のデータベースソリューションと変わりありません。 –
それはありますが、DBMSを使用できない場合はどうすればいいですか?自分の実装を考え出す必要がある場合はどうすればよいですか? –