Redis ストレージ構造

Redis はどのように保存されますか?

 この redisDb はデータベース オブジェクトであり、その中の他のフィールドは無視され、その中には dict リスト (辞書リスト) が存在します。

redisObject を気軽に見てみましょう

 区別しましょう。この dict には redisObject オブジェクトも dict オブジェクトも保存されておらず、データ ポインターのみが保存されています。

Redis の基礎となるコードをすべて確認してください。この部分を再度保存すると、無駄になります。

有効期限キー

Redis データには有効期限キーを設定できるため、一定時間が経過すると、これらのオブジェクトは自動的に期限切れになり、リサイクルされます。これらの期限切れのキーは、通常のキーと一緒には保存されません。

間違い: ああ、これもポインタです。この辞書に格納されているキーと有効期限は同じデータです。図は次のようになりますが、実際には、タイムスタンプと値は両方の辞書のキーで (ポインタを介して) 見つけることができます。 

これら 2 つの辞書には、キー オブジェクトへのポインタ (つまり、String オブジェクトへのポインタ) が格納されます。1 つの値は任意のオブジェクトで、もう 1 つはタイムスタンプです。このキーは 2 つの辞書で再利用されるため、ポインタを直接使用します。

前に説明したオブジェクトの一部はキーと値の構造ですが、ここでのキーと値の構造がオブジェクトであるという意味ではなく、ここでのキーは文字列オブジェクトであり、値はオブジェクトです。  

SET ab、このデータのストレージ構造は何ですか?

Redis ストレージ エンジンには dict があり、対応するオフセットに a を配置し、対応する値として b を格納します。

SET a 100 ex 60 の後、TTL a. 有効期限情報はこの時点でどこに保存されますか?
キー オブジェクト ポインタを Expires に直接入れ、タイムスタンプを値として挿入します。 

おすすめ

転載: blog.csdn.net/chara9885/article/details/132180036