写真を見たり、ブログを読んだり、インターネットで音楽を聴いたりする人。あなたのサイトがどの言語で書かれているか、どのDBMSが使われているか、キャッシュを使うかどうかは関係ない。 彼にとって興味深いコンテンツへのアクセスは可能な限り高速であることが重要です。
しかし、時間が経つにつれて、プロジェクトへの参加者が増加するため、プロジェクトを成功させるには常により高い生産性が必要になります。
PHP + MySQL + Memcachedの束を考えてみましょう。
ユーザーにコメント付きの記事を表示するには、次のものが必要です。
- キャッシュに記事(コメント付き)があるかどうかを確認する
- そうでない場合は、「親愛なる」JOINテキスト+コメントを作成します
- すべてをキャッシュに入れる
- ユーザーとコンテンツを共有する
現代のnoSQLの概念は、正規化されたデータ構造に対する答えとして浮上しています。
前の例のPHP + Memcachedバンドルを検討してください。
- キャッシュに記事(コメント付き)があるかどうかを確認する
- そうでない場合は、キャッシュに入れます
- ユーザーとコンテンツを共有する
「ドキュメント」という用語が表示されます(例:コメント付きの記事)。 noSQLテクノロジーをより具体的に理解するために、私は
JIM2プロトタイプ
必須: Apache + mod_php + php_xcache
ファイルが保存されるパスを指定します。
define( 'STORAGE_PATH' , 'F:\\tmp\\jim2' );
使用例:
記録する
$collection = new Collection();
$vasya = array
(
'name' => 'Vasya' ,
'sex' => 'male'
);
$masha = array
(
'name' => 'Masha' ,
'sex' => 'female'
);
$jim = array
(
'name' => 'Jim' ,
'sex' => 'male' ,
'type' => 'dog'
);
$collection->put($vasya);
$collection->put($masha);
$collection->put($jim);
$collection->createIndex( array ( 'name+sex' , 'sex' ) );
読書
機能:$collection = new Collection();
$keys = xcache_get( './index/sex/male' );
foreach ($keys as $key)
{
print_r( $collection-> get ($key) );
}
- ドキュメントはキー/値として保存されます
- ドキュメントプロパティを使用して、インデックスを作成できます(追加のキーが作成されます)
- 各ドキュメントには、ドキュメントのバージョンを示す_revフィールドがあります。 これにより、ドキュメントのバージョンがチェックされるため、書き込み用にファイルをロックする際の衝突が防止されます。
- また、コレクション自体にバージョンが保存されます。 ドキュメントのコレクションに基づいて構築されたキャッシュの関連性を検証できるように作成
- APIを使用してコレクションを取得する
- ページネーション
- ...あなたの提案のいずれか