2011-09-29 8 views
2

Redis에서 검색하는 방법?

MySQL에서 나는

cities 두 개의 컬럼을 포함한다. namepopulation

그리고 나서 다음과 같은 검색 결과를 얻는다 :

SELECT * FROM cities WHERE name LIKE '%Bu%' ORDER by population DESC LIMIT 2

그리고 결과를 얻는다. Bucharest, Budapest.

Redis에서 어떻게 할 수 있습니까? 비슷한 구조를 만들려면 어떻게해야하며 그런 다음 값을 검색하려면 어떻게해야합니까?

+0

당신은 그렇지 않습니다. 참조하십시오 : http://stackoverflow.com/questions/6401194/how-do-i-search-strings-in-redis – ldg

+0

@ldg이 질문에 대한 답변을 찾을 수있는 방법을 이해하는 데 도움이 redis . – Adam

답변

7

키 - 값 저장 방법에 대한 추가 연구가 필요하다고 생각하지만 지나치게 단순화 된 예제로 게시물을 사용하려면 방법을 사용하면 모든 값은 다음과 같이 그 키에 일치하는 인덱스를 생성 :

SET c1 "Bucharest" 
SET c3 "Budapest" 
SADD city:bu c1 
SADD city:bu c3 
SMEMBERS city:bu 

=> 사용할 수있는

[ "C1", "C3"] : http://try.redis-db.com/을 그것을 밖으로 시도 할 수 있습니다.

3 문자 검색에 그 연장 :

SADD city:buc c1 
SMEMBERS city:buc 

=> [ "C1"]

등이 색인에 순위를 할당 할 수있는 방법을 포함하여이 접근하는 방법에는 여러 가지가있다 이 예제는 example으로 표시된 것과는 다른 접근법이지만 조금 이해하기 쉽습니다 (here과 비슷합니다).

+0

안녕하세요. 나는 하나의 2 개의 값을 여러 개 저장해야하는데, '많은 것'각각에 부가적인 문자열 값이 첨부 될 수있다. 부모 항목을 자식 문자열 값으로 찾아서 contains, starts 등으로 효율적인 검색을 제공 할 수 있어야합니다. 1) Redis는 좋은 선택입니까? 2) 다른 모든 아이디어 (MIT/BSD/Apache 라이센스가있는 것이 좋음)? 고맙습니다! – Shimmy

+0

안녕하세요 @ Shimmy - 이것은 아마도 적절한 포럼이 아니며 응용 프로그램 별 문제가 많은 매우 광범위한 질문입니다. Redis는 [this] (https://robots.thoughtbot.com/redis-partial-word-match-you-auto-complete-me)와 같은 고유 한 색인을 설정하여 사용할 수 있지만 간단한 설명에서 볼 수 있습니다. 아마도 최선의 선택이 아닌 레디 스에 능숙하지 않습니다. 문서 저장소 (~ MongoDB)에서 RDBMS, 다중 모델 DB (Lucene/Solr) 또는 그 일부가 혼합 된 다른 네이티브 텍스트를 검색하는 DB를 살펴보십시오! – ldg

관련 문제