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

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