2011-01-02 3 views
3

heroku에 배포 된 간단한 응용 프로그램이 있습니다. 기본적으로 사용자는 검색 용어를 입력합니다. '최근 검색'을 표시하는 페이지 측면에 작은 섹션을 추가하고 싶습니다. 이 경우에도 응용 프로그램에 데이터베이스를 추가하고 싶지는 않습니다. 나는 redis에 대해 읽었지만 이것을 사용할 수있는 것입니까? 내가 redis 해시에 대해 10 개의 최근 검색어를 푸시하고 검색 할 수 있습니까?heroku app에 데이터베이스 대신 redis를 사용합니다.

답변

6

예, 재발행을위한 좋은 사례입니다. Redis 목록에서 검색 용어를 누르고 최근 10 개의 검색어를 표시하려면 검색하십시오. 주기적으로 목록에서 마지막 항목을 제외한 모든 항목을 제거하여 너무 커지지 않도록 할 수 있습니다.

REDIS.rpush('searches', 'Xyz') 

하고 검색과 같이 지난 10 : :

이 같은 목록에 항목을 추가 (REDIS를 가정하는 것은 레디 스 연결입니다)

REDIS.lrange('searches', -10, -1) 

(부작용 등의 레디 스 얻을 것이다 먼저 목록의 마지막 요소, 아마도 당신이 원하는 것입니다). Redis 목록은 Ruby 배열처럼 작동하며, 음수 인덱스는 끝에서부터 세는 것을 의미합니다.

는이 명령을 사용하여 열 개 요소 목록을 캡 :

REDIS.ltrim('searches', -10, -1) 

중 하나를 당신이 할이이 목록은 성장 결코, 또는 당신이 정기적으로 그것을 확인하기 위해 뭔가를 밀어마다. lrange 작업은 어쨌든 마지막 10 개 요소 만 검색한다는 것을 의미하므로 단지 선호 사항입니다.

+0

대단히 감사합니다. – ralph