假設我有一些對象只需要在應用程序中創建一次,但在多個請求中進行訪問。這些對象是不可變的。做這個的最好方式是什麼?Sinatra中的應用程序數據
0
A
回答
0
將它們存儲在會話中。
如果您不想在服務器重新啓動後丟失它們,請使用數據庫(例如SQLite,它是單個文件)。
0
你想堅持你的對象。通常情況下,你可以使用Active Record或Datamapper等ORM。取決於你可以得到的東西。如果你想在沒有遷移的情況下簡單地完成某些事情,並且你可以使用mongomapper訪問MongoDB。
0
如果該對象只用了一段時間,然後將其丟棄(如果需要再次重新創建),請使用緩存機制,如memcached或redis。
如果設置這樣的服務非常繁重,並且您想要避免這種情況,並且 - 比如說 - 您正在使用Debian/Ubuntu,那麼請在/ shm設備中將您的對象保存到文件中(使用Marshaling)。
如果數據的結構很複雜,那麼按照上面的建議使用SQLite。
相關問題
- 1. 如何html_escape在sinatra應用程序中的文本數據?
- 2. 測試Rails中的Sinatra應用程序
- 3. Sinatra應用程序中的寶石
- 4. Sinatra應用程序中的XSS保護
- 5. 從開發數據庫中分離Sinatra應用程序的測試數據庫?
- 6. 如何在Padrino應用程序中安裝Sinatra應用程序?
- 7. Sinatra應用程序可以使用2個數據庫嗎?
- 8. Sinatra應用程序(可能)調用數據庫兩次
- 9. 在MacRuby應用程序中運行Sinatra
- 10. 從Rails應用程序簽名到Sinatra應用程序的Cookie
- 11. 我可以在Sinatra應用程序中停止Sinatra嗎?
- 12. 兩個Sinatra應用程序,共享數據映射器DB
- 13. Sinatra應用程序不更新數據庫
- 14. Ruby Sinatra簡單應用程序 - 原始POST數據
- 15. 將數據從Nginx傳遞到Sinatra應用程序
- 16. Heroku上的Sinatra + Datamapper應用程序
- 17. 客戶端應用程序的Sinatra cookie
- 18. Sinatra的gzip資產應用程序
- 19. 如何在Cloudry Foundry的Sinatra應用程序中創建新的MySQL數據庫?
- 20. Rack應用程序和Sinatra應用程序有什麼區別?
- 21. 在Heroku中共享Sinatra和Rails應用程序之間的MongoHQ數據庫
- 22. 在Sinatra/memcached應用程序中不會過期的緩存數據
- 23. 之前在RoR應用程序中過濾機架(sinatra)的應用程序
- 24. Heroku - 在Sinatra應用程序中插入config.ru後的應用程序錯誤H10
- 25. Minitest嘲笑Sinatra應用程序
- 26. 較少掛起Sinatra應用程序
- 27. 在Heroku上部署Sinatra應用程序
- 28. 在Dreamhost上部署Sinatra應用程序
- 29. Sinatra應用程序共享會話值?
- 30. 在哪裏部署Sinatra應用程序?