我們目前是採取2這種做法,但在實作上的code大約會如下:
if not Album.objects.filter(item_id=item_id).exists():
Album.objects.create(player=player, item_id=item_id)
這樣的做法,但這樣每次拿到物品時就要access db一次,若物品不存在則會access db兩次。後來嘗試把這樣的功能搬到Redis中,可以利用Redis的set就可以很容易解決這樣的問題。
我們把item_id當成塞進set中的value,不管有沒有這個物品,因為set有Unordered Collections of Objects的特性,所以重覆的資料會自動被過濾掉,取圖鑑時也把整個set拿出來就可以了。
我們把item_id當成塞進set中的value,不管有沒有這個物品,因為set有Unordered Collections of Objects的特性,所以重覆的資料會自動被過濾掉,取圖鑑時也把整個set拿出來就可以了。
沒有留言:
張貼留言