データベースに追加の負担をかけないように、自分のサイトへのリクエストに関する情報をすばやく保存したいと思います。目標は、この情報を使用して悪用を防ぎ、ユーザーがサイトをどのように操作するかに関する情報(ip、GET / POST、url / action、timestamp)を収集することです。
現在、データベースへの各ページリクエストの新しい行を保存しています。ただし、サーバーがすでに同じ情報をnginxログファイルに記録している場合、これは余分なデータベース呼び出しでリソースを浪費します。
これをうまく処理するために何ができるか知りたいのですが、もっと良い方法があるかどうか知りたい2つのアイデアがあります。
- アクセスログを毎日解析し、バッチトランザクションとしてデータベースに保存するCRONジョブ。
- リクエストに関するデータを保存するためのRAMキャッシュ(redis / memcached)、次にデータベースに保存するためのCRON。
ただし、すべてのレコードを取得してデータベースに挿入できる方法でKey-Valueキャッシュを使用する場合、データを保存する方法がわかりません。
また、エントリを再読み込みしない方法でアクセスログを解析する方法もわかりません。
アクセスの試行を効率的に記録するにはどうすればよいですか?