2011-02-06 3 views
6

저는 Redis을 처음 접했고 웹 응용 프로그램에서 사용자를 처리하기 위해 mysql 데이터베이스에있는 "users"테이블에 해당하는 "모범 사례"솔루션을 원했습니다.Redis newbie - mysql 테이블에 대한 동등한 접근법

사용자 집합을 Redis로 만들 수 있습니까? 또는 각 사용자에 대해 SET이있는 사용자 데이터베이스입니까?

답변

8

내 표준 설정은 표준 키 u : 사용자 ID의 직렬화 된 개체입니다.이 개체는 각 요청에서 검색되며 속성 중 하나에 만 액세스 할 필요가 없습니다.

사용자 속성에는 json 대신 해시를 사용할 수도 있지만 강력한 설정의 개체로 사용되는 모든 설정과 클라이언트의 다른 서버에서 실행되는 redis가 포함되므로 json을 사용하면 일반 deserialization 대기 시간 문제를 최소화합니다.

사용자 개체 이외에 사용자를 찾는 데 필요한 필드에 대한 색인이 필요합니다. 예를 들어 사용자가 전자 메일 주소로 로그인 할 수있게하려면 전자 메일 주소 이 필요합니다. =>사용자 ID 해시도 여기에서 작동합니다. 중요한 점은 전자 메일에서 사용자 개체로 가져 오기 위해 O (1)이 필요한 것입니다.

사용자 데이터의 일부에는 고유 한 키가 있어야합니다. 예를 들어 팔로어 목록은 redis 세트와 완벽하게 일치하므로 가장 잘 양식에 저장됩니다.

1

정말 응용 프로그램 내 사용자가 수행하고자하는 작업에 따라 다릅니다. 또 다른 옵션은 각 사용자가 자신의 해시가되는 것입니다. 키는 각 사용자 (성, 성 등)의 속성 (필드)입니다. 삽입 할 ID 생성기로 증가하는 키와 모든 사용자 ID를 보유하는 데 사용할 수있는 다른 세트를 사용할 수 있습니다.