[英]What is the best practice for storing rarely modified database values in NodeJS?
我有一個可以與Salesforce一起使用的節點應用程序,可以處理一些不同的事情。 其中一項功能是讓用戶填寫表格並將其推送到Salesforce。
該表單具有一個下拉列表,因此我查詢salesforce以獲取可用下拉列表,並通過res.locals將其提供給我的表單。 目前,我是通過一些中間件獲取這些值的,將它們存儲在用戶會話中,然后檢查是否設置了會話值,如果沒有使用,請使用它們,查詢salesforce並將其引入。
這行得通,但是這意味着Mongo中的每個用戶會話數據都擁有一大堆選擇列表值(它們對於所有用戶而言都是相同的)。 我很少在Salesforce方面更改值,所以我想知道是否存在“正確”的方法來將這些值存儲在我的應用程序中?
我可以將它們放入Mongo集合中,並在它們更改時觸發它們的手動刷新。 我可以在Mongo中使它們過期(但實際上,如果確實需要更改它們,這是因為有人需要立即訪問新值),因此不確定這是否最有意義...
將它們存儲在每個人的會話中是解決此問題的最佳方法,還是我應該做些其他事情?
為了快速回答您的問題,您可以將它們添加到單個對象中(而不是會話數據(按用戶))。 但不確定如何管理它們的壽命(即,在它們改變時再次拉動它們)。 可以使用一個簡單的腳本文件來實現單例,該腳本文件需要返回一個簡單的對象...
但是,如果我要做這樣的事情,我會做不同的事情:
如果您可以承受短時間內過時的數據,則可以編寫您的API,以便它返回已緩存的響應(http緩存,短時間)
請注意,您還可以在第1點和第2點中組合緩存並一起使用。
此處的更多資源: https : //devcenter.heroku.com/articles/increasing-application-performance-with-http-cache-headers https://developers.facebook.com/docs/marketing-api/etags
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.