[REDIS] 키 이름 지정 규칙을 레디 스?
REDIS키 이름 지정 규칙을 레디 스?
레디 스에서 키에 대한 일반적인 명명 규칙은 무엇입니까? 나는에 의해 구분 된 값을 본 적이 :하지만 난 왜 일반 규칙이 무엇인지 확실하지 않다, 또는.
사용자를 들어 당신이 뭔가를 할 것입니다 ...
사용자 : 00
사용자의 ID가 00 인 경우
모든 사용자를 반환하는 키의 시작에 불과 쿼리 할 수 있습니까?
나는 주로 그냥 가지 방법으로 그 사람을위한 작업과 왜 그들을 선택을 연구하여 향후 문제가 발생하지 않도록 바라고 있어요.
해결법
-
==============================
1.예, 대장 기호 : 키 이름을 지정할 때 관례이다. 레디 스 웹 사이트에이 튜토리얼에서 언급되는 : 스키마를 고수하려고합니다. 예 ": ID : 객체 형 필드"를 할 수 있습니다 멋진 아이디어처럼 "사용자 : 1000 : 비밀번호". 나는에 대한 도트를 사용하려면 멀티 단어의 분야에서와 같은 "코멘트 : 1234 : reply.to".
예, 대장 기호 : 키 이름을 지정할 때 관례이다. 레디 스 웹 사이트에이 튜토리얼에서 언급되는 : 스키마를 고수하려고합니다. 예 ": ID : 객체 형 필드"를 할 수 있습니다 멋진 아이디어처럼 "사용자 : 1000 : 비밀번호". 나는에 대한 도트를 사용하려면 멀티 단어의 분야에서와 같은 "코멘트 : 1234 : reply.to".
직접 사용자로 시작하는 모든 키를 쿼리 같이가 someting 의미 경우 : a 키가에 대한 명령이 있습니다. 이 명령은 그러나 오직 모든 키를 통해 그것의 검색 데이터베이스에 strored 때문에 그것의 O (N) 이후 디버깅 목적을 위해 사용되어야한다.
이 문제에 대한 더 적절한 솔루션은 전용 키를 생성하는 것입니다,하자의 이름은 목록 또는 설정 데이터 구조, 예를 들어, 모든 사용자의 키를 저장하는 사용자입니다.
-
==============================
2.우리는 공간 분리 및 예컨대 키의 ID-부품에 대한 해시 (#)로 : (콜론을 사용합니다 :
우리는 공간 분리 및 예컨대 키의 ID-부품에 대한 해시 (#)로 : (콜론을 사용합니다 :
logistics:building#23
-
==============================
3.규칙은 콜론 (것 같습니다 :)하지만 난 개인적으로 구분 기호 슬래시 (/)를 선호 그래서 나는 웹 개발자입니다. 슬래시는 이미 자원에 대한 범용 리소스 로케이터 그래서 종류의 키가 될 의미의 URL 내에서 매우 중요한 구분이다. 왜 콜론 (:)으로 다른 접근 방식을 취할? 그것은 어떤 도움이됩니까?
규칙은 콜론 (것 같습니다 :)하지만 난 개인적으로 구분 기호 슬래시 (/)를 선호 그래서 나는 웹 개발자입니다. 슬래시는 이미 자원에 대한 범용 리소스 로케이터 그래서 종류의 키가 될 의미의 URL 내에서 매우 중요한 구분이다. 왜 콜론 (:)으로 다른 접근 방식을 취할? 그것은 어떤 도움이됩니까?
이 예제를 생각해 봅시다 :
우리는 장난감 객체를위한 편안하고 API가 있습니다. 하나가있다 :
http://example.com/api/toy/234
우리는 어디를 저장 한? 키가 명백하다 그래서 우리는 레디 스 및 슬래시를 사용합니다 :
toy/234
이 장난감에 대한 고유 키입니다. 키는 이제 클라이언트 측에서 사용할 수 있습니다 :
{ key: "toy/234", color: "red", url: function () { return API_BASE_URL + this.key; } }
사용자는 키 장난감 / 666와 객체를 요청합니다. 어떻게 레디 스에서 얻을 수 있습니까? Node.js를 관련 예 :
redis.get(key, function reply_callback(error, toystring) { var toy = JSON.parse(toystring); ... }
콜론 및 그 반대로 변환 슬래시 할 필요가 없습니다. 편리한, 당신은 생각하지 않아?
참고 : 항상 사용자가 의도 만 가지에 액세스 할 수 있는지 확인합니다. 원시 URL - 투 - 키 방식은 위의 해설자가 언급 한 바와 같이,뿐만 아니라 사용자 / 1 / 비밀번호를 가져올 수 있습니다. 공용 읽기 전용 캐시로 레디 스를 사용하는 경우이 문제가되지 않습니다.
-
==============================
4.정말 아직 이름 레디 스 키에 대한 광범위한 "모범 사례"가 있는지 모르겠어요.
정말 아직 이름 레디 스 키에 대한 광범위한 "모범 사례"가 있는지 모르겠어요.
나는 (모두 8 비트 깨끗 레디 스 파이썬 이후) 내 구분자로 아스키 NUL 문자를 사용하여 실험했습니다. 당신은 원시 키에서 찾고 있다면 그것은 조금 추한 보이지만, 아이디어는 추상화 계층 뒤에 숨길 것입니다. 콜론 및 파이프 기호는 너무 오래 당신의 이름 공간의 구성 요소 중 하나를 보장로 사용하지 않는 명백한 대안하거나 필요에 따라 각 구성 요소를 인코딩 기꺼이. 당신이 다음을 인코딩 할 거라고는 추상화 계층을 개발하고 싶어하고 ... 어쨌든 보는 원시 키를 피하는 경우, 이는 곧 다시 그냥 내 추론에 \ 0을 사용하는 저를 가져왔다.
나는 어떤 다른 의견이에 관절 경우보고에서 흥미로운 일이 될 것이다.
-
==============================
5.당신의 유스 케이스를 위해 나에게 HSET / HGET이 더 잘 맞는 것 같다. HKEYS 명령도 있습니다.
당신의 유스 케이스를 위해 나에게 HSET / HGET이 더 잘 맞는 것 같다. HKEYS 명령도 있습니다.
그 모든 명령은 왜 사용하지, GET / SET / 키와 같은 복잡성을 가지고?
그런 다음이 구조를 가질 수있다 :
또는:
그냥 사용자의 ID를 추출하고 해시 키로 사용합니다. 나는 개인적으로 더 좋은 느낌으로이 방법을 선호하고 또한 쉽게 쿼리 기존 사용자 ID에 대한.
from https://stackoverflow.com/questions/6965451/redis-key-naming-conventions by cc-by-sa and MIT license
'REDIS' 카테고리의 다른 글
[REDIS] 가장 효율적인 Node.js를 프로세스 간 통신 라이브러리 / 방법은 무엇입니까? (0) | 2019.12.30 |
---|---|
[REDIS] 직접 메모리를 사용하여 대 레디 스 캐시 (0) | 2019.12.30 |
[REDIS] 마라톤에서 실행 레디 스 (메소) 하나의 URL에서 (0) | 2019.12.30 |
[REDIS] BookSleeve를 사용하여 오픈 레디 스 연결을 유지 (0) | 2019.12.30 |
[REDIS] 레디 스의 많은 많은 관계를 가지고하는 방법 (0) | 2019.12.30 |