最近在做一個測試回歸的系統,Server這邊需要在每個Test執行的時候為它保留相關的數據,待測試結束后,刪掉這些數據。也就是這個數據只是臨時的,一般一次測試用例大概就幾分種,因此單挑數據的存在時間非常短。所以想要選用Redis做數據存儲。之前沒有使用Key-Value數據存儲的經驗,我這邊簡單構想的單挑數據結構如下:{ sessionId: 123454, gloablData: {}, // 在全局維持的數據
testWins: [
{ winId: 123, parentWinId: 123, stats: 'running', testResult: {}
}
]
}其中testWinds為測試用所有可能會出現的窗口(窗口其實為瀏覽器窗口,這個可以無視),然后會為每個窗口記錄信息,然后每個窗口有自己的子測試結果testResult,是一個復雜數據(但是可以用JSON字符串來儲存,因為Server對它的具體內容不關心,輸出給需要的接口就行了),globalData也一樣,server不關心,設置成JSON字符串但是查看Redis文檔,發現Redis貌似無法構建這么復雜的數據結構。我這邊的簡單設置是這樣的:對于每次測試:有一條儲存globalData:session_id:globalData和多條儲存testWin數據:session_id:testWind_id其中globalData由于我這邊的Server不關心也不會做查詢,因此只保存JSON字符串,testResult也一樣,這樣的話,貌似其實就兩種類型:session_id:testWind_id: { winId: 123, parentWindId: 123, stat: 'running', testResult: JSONString }session_id:globalData: JSONString
2 回答

斯蒂芬大帝
TA貢獻1827條經驗 獲得超8個贊
存儲和使用可以用對象封裝。
針對你的情況,我會這么存。
Key : "session:123454:globalData" Value: hash 這里存屬性hash. (hget, hset)
Key : "sesison:123454:testWins" Value: list 存儲 test wins' ids
Key : "session:123454:testWins:win_id" Value: hash 這里存wins屬性hash,也就是你json串的東西。
存儲這樣,使用還是要用對象封裝起來
- 2 回答
- 0 關注
- 244 瀏覽
添加回答
舉報
0/150
提交
取消