我有一個包含對象id及其各自排序分數的redis排序集。我需要檢索這些對象的Django查詢集,按照排序後的集合的分數排序。什麼是最有效的方式來做到這一點?我的數據庫是postgresql。檢索按照redis排序集排序的Django查詢集的性能最高的方法
目前,我檢索Redis的有序set和無序查詢集分開。接下來,我按照python中的排序集合的分數排序查詢集。可以在這裏切出有意義的步驟,例如以某種方式在檢索點排序查詢集等?
obj_ids_with_scr = get_ids_w_scr() #retrieves redis sorted set with scores
obj_ids = map(itemgetter(0),obj_ids_with_scr) # filters sorted set for just the obj ids
queryset = Widget.objects.filter(id__in=obj_ids) #unsorted queryset
a = dict(obj_ids_with_scr) #turning the sorted set into a dictionary
for obj_pk, sort_score in a:
obj = queryset.get(id=obj_pk) #get object with id equalling obj_pk
sort_score = obj #assign the object to the 'score' value of this key-value
result = a.values() #making a list of all values, that are now in sorted order
return result
你正在使用什麼數據庫? – 2ps
我正在使用postgresql 9.3 –