SQL과 같은 데이터베이스를 사용하는 대신 Redis에 사용자 데이터를 완전히 저장하는 것이 가능한지 고려하세요.
첫 번째 문제는 사용자가 사용자 이름과 비밀번호를 입력했을 때 검색하는 방법입니다.
key 명령을 사용하는 것은 절대 불가능합니다. 끔찍합니다.
예상되는 구조는 다음과 같습니다.
으아악사용자가 이메일을 입력하는지 휴대폰을 입력하는지 확인
hget 명령을 사용하여 해당 데이터에서 해당 고유 식별을 얻습니다
hget이 데이터를 얻는 경우 user:unique-identification을 키로 사용하여 사용자 데이터를 얻습니다
비밀번호를 비교하여 일치하는지 확인 후 해당 세션과 쿠키를 생성하면 로그인이 완료됩니다.
발생할 문제를 고려하십시오.
hget의 응답 시간은 검색용 키 명령보다 훨씬 빠릅니다. 우리는 LUA를 사용하여 한 번의 액세스로 로그인 확인을 완료할 수 있는지 여부를 아직 고려하지 않았습니다.
그러나 데이터 저장은 해결하기 어려운 또 다른 문제가 되었습니다. 사용자가 300만 명이라면 이메일 하나=>고유 식별 검색 데이터는 사용자가 1000만 명이라면 두 번 검색하면 됩니다. 약 2G의 데이터.
이 문제를 해결할 수 있는 좀 더 합리적인 구조가 있는지 알려주세요. 전문가의 조언을 기대합니다.
개인적으로 Redis를 저장용으로 사용하는 것은 확실히 무리라고 생각하지만 가능합니다.