2012-07-02 3 views
0

redis를 사용하여 hgetall, 모든 항목을 dict로 가져옵니다.python을 사용하여 redis에서 마지막 항목 가져 오기

해시로 마지막 다섯 항목을 얻는 방법은 무엇입니까? 가능한 경우 전체 사전을 처리하지 않겠습니까? 위는 나에게 깨끗한 솔루션을 제공하지 않습니다

dt = cxn.hgetall(k) 

lt =[[key, dt[key]]for key in sorted(dt.iterkeys()) ] 

다시 lt 를 처리해야합니다. 파이썬을 사용하여 2.7

편집 : hgetall(k) return {'21': 'fooo', '2': 'bar' }, 키가 문자열입니다.

+0

그래서 키의 정수 값으로 정렬 하시겠습니까? –

+0

예. 한 가지 방법으로, 'hgetall'에서 마지막 5 개만 가져옵니다 .... lrange mylist -6 -1 – Merlin

+1

과 비슷한 것을 찾는이 간단한 예제를보고 & ths가 원하는지 알려주십시오.

답변

0
>>> dic={'1':100,'2':200,'3':300,'4':400,'5':500,'6':600,'7':700} 

>>> print [[str(key), dic[str(key)]]for key in sorted(map(int,dic.iterkeys()))[-5:] ] 
[['3', 300], ['4', 400], ['5', 500], ['6', 600], ['7', 700]] 
+0

아니요, 편집 확인 .... 키가 str입니다 – Merlin

+0

pls :이 ans를 링크와 동일하게 변경하십시오. – Merlin

+0

@Merlin 솔루션이 업데이트되었습니다. –

관련 문제