web-dev-qa-db-ja.com

Memcache / Redisまたは他のソフトウェアを使用せずに、phpを使用してメモリ(RAM)にデータを保存する方法

PHP以下の機能で構成される)にキャッシュシステムを実装したい

1)メモリが機能する限り、(大量または少量の)データを保存できる必要があります(キーと値のペア、つまり取得と設定)。

2)TTLが必要です

3)LRUが必要です

4)複雑さはO(1)である必要があります

制限:1)memcacheやredisなどのミドルウェアをメモリDBで使用することは許可されていません-したがって、基本的にmemcacheを実装してください

ここでの問題はここです

  1. PHPを使用してRAMと対話するにはどうすればよいですか?
  2. PHP変数はメモリに格納できますが、スレッドが終了するとすぐにすべての変数がガベージコレクションされます。データを失うのですか?
  3. メモリmysql dbエンジンで使用できますか?できますか?
  4. PHPを使用してそのようなシステムを構築することは可能ですか?
3
deepak

PHP特定の問題ではありません。複数のプロセスとメモリを共有したい場合(PHPスクリプトがプロセスの終了後に終了する場合)は常に、共有メモリを使用してください。PHPでは、 shm_attach() =始めましょう。

Shmの上にキャッシュを実装するのは簡単です。

4
imel96

PHPからメモリのチャンクにアクセスする最も簡単な方法は、tmpfsを使用することです。

次に、ファイルハンドルの操作に関してハッシュテーブルの実装(+キャッシュロジック)を記述します。これはエクササイズとしては楽しいかもしれませんが、他の誰かのダイムでこれを行うと、あなたは適切に仕事をしていません。

2
monocell