課程
/后端開發
/Java
/Java高并發秒殺API之高并發優化
為什么不直接吧seckillID作為key?而是存seckill:+seckillID?
2018-05-19
源自:Java高并發秒殺API之高并發優化 2-1
正在回答
你這樣當然是可行的,只不過在前面加上個類型標識拓展性高一點,可能未來會有其他類型的數據也需要存到redis緩存呢
魄彈獸 提問者
為什么你要糾結這個問題呢,關注點有點歪啊
不過還是給你答一下吧,為了規范、擴展,分類識別,避免誤修改在redis中的key是這樣"seckillId:1007",但如果只用"1007",如果有一個其他類型的(數據庫中的另一張表的數據),恰好id也是1007,存入redis中,就會把這個的key修改點,你可以理解為直接把value覆蓋掉,所以加個前綴以區分。
舉報
Java實現高并發秒殺API的第四門課,小伙伴一定可以從中受益
2 回答使用MapUtils獲取value跟直接map.get(key)有什么不同
2 回答為什么我DEBUG的時候有一步它不走,直接跳過了呢?
2 回答建表的時候索引為什么不直接加在number上面,而是加在start-time,end-time,create-time上
1 回答序列化的時候轉換成字節數組的時候key為什么前面要加"seckill:"
1 回答為什么不用redis的hash來存儲對象?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2018-05-20
你這樣當然是可行的,只不過在前面加上個類型標識拓展性高一點,可能未來會有其他類型的數據也需要存到redis緩存呢
2018-05-21
為什么你要糾結這個問題呢,關注點有點歪啊
不過還是給你答一下吧,為了規范、擴展,分類識別,避免誤修改
在redis中的key是這樣"seckillId:1007",但如果只用"1007",如果有一個其他類型的(數據庫中的另一張表的數據),恰好id也是1007,存入redis中,就會把這個的key修改點,你可以理解為直接把value覆蓋掉,所以加個前綴以區分。