我想使用rocksdb为我的php mysql基于web应用程序。我已经为rocksdb构建了php扩展,并试图在简单的程序中使用它。但我看到的是,当我从两台计算机访问PHP脚本时,有时它会显示lock:Temporary no resource available。
通过搜索这个错误,我发现如果我试图打开rocksdb在同一目录下从两个单独的进程,我在这个问题上运行。但在典型的Web应用程序中,当多个用户同时执行相同的脚本时会发生这种情况
我可以这样使用RocksDB吗?
基本上我想把它用作Web应用程序缓存。因此,当数据在缓存中可用时,应用程序将从缓存中返回,如果在缓存中不可用,则将其放入缓存。
2条答案
按热度按时间n53p2ov01#
我终于弄明白了,如果我使用php扩展使用rocksdb,它会在每个php请求上打开rocksdb。相反,应该建立一些运行服务,保持rocksdb打开,并给予数据时,我的php程序需要。
节俭解决了我的问题。
这篇文章和评论帮助了我。
https://engineering.wingify.com/posts/fast-storage-with-rocksdb/
nimxete22#
对于像我这样的人,几年后才到达,FYI,现在在Apache孵化器https://kvrocks.apache.org/下有一个KVRocks项目。它允许集群所有花哨的东西,并且可以通过Redis API完全访问。