Redis 키에서 콜론의 목적은 무엇입니까
내 프로젝트에 Redis를 사용하는 방법을 배우고 있습니다. 내가 생각하지 못한 한 가지는 키 이름에서 콜론이 정확히 무엇에 사용되는지입니다.
다음과 같은 키 이름을 보았습니다.
users:bob
color:blue
item:bag
콜론이 키를 범주로 구분하고 키를 더 빨리 찾을 수 있도록합니까? 그렇다면 키 이름을 지정할 때 여러 콜론을 사용하여 하위 범주로 나눌 수 있습니까? 마지막으로 Redis 서버 내에서 다른 데이터베이스를 정의하는 것과 관련이 있습니까?
나는 문서를 읽고 그 문제에 대해 수많은 Google 검색을 수행했지만 이상하게도 이것에 대해 논의하는 것을 찾을 수 없습니다.
콜론은 네임 스페이스 데이터를 저장하기위한 개념으로 이전 redis 버전에있었습니다. 초기 버전에서 redis는 문자열 만 지원했습니다. 이메일과 'bob'의 나이를 저장하려면 모두 문자열로 저장해야했기 때문에 콜론이 사용되었습니다.
SET user:bob:email bob@example.com
SET user:bob:age 31
redis 에는 특별한 처리 또는 성능 특성 이 없었 으며 유일한 목적은 데이터를 다시 찾기 위해 이름을 지정하는 것이 었습니다. 요즘에는 대부분의 콜론 키를 저장하기 위해 해시를 사용할 수 있습니다.
HSET user:bob email bob@example.com
HSET user:bob age 31
해시의 이름을 "user : bob"으로 지정할 필요는 없지만 "bob"으로 이름을 지정할 수 있지만 사용자 접두사로 이름을 지정하면이 해시가 어떤 정보를 가져야하는지 즉시 알 수 있습니다.
콜론은 키를 구성하는 방법입니다. 그들은 어떤 식 으로든 redis에 의해 해석되지 않습니다. 원하는 다른 구분 기호를 사용하거나 전혀 사용하지 않을 수도 있습니다. 나는 개인적으로을 선호하는데 /
, 이것은 내 키를 파일 시스템 경로처럼 보이게 만든다. 성능에 영향을 미치지는 않지만 redis가 모든 키를 메모리에 보관해야하므로 지나치게 길게 만들어서는 안됩니다.
SQL 조인에 대한 redis의 답변 인 sort 명령의 기능을 활용하려면 좋은 키 구조가 중요합니다.
GET user:bob:color -> 'blue'
GET user:alice:color -> 'red'
SMEMBERS user:peter:friends -> alice, bob
SORT user:peter:friends BY NOSORT GET user:*:color -> 'blue', 'red'
키 구조를 통해 SORT가 구조화 된 키를 참조하여 사용자의 색상을 조회 할 수 있음을 알 수 있습니다.
참고 URL : https://stackoverflow.com/questions/3554888/what-is-the-purpose-of-colons-within-redis-keys
'programing tip' 카테고리의 다른 글
Firebug를 감지하는 Javascript? (0) | 2020.11.08 |
---|---|
이 다형성 C # 코드가 수행하는 작업을 인쇄하는 이유는 무엇입니까? (0) | 2020.11.08 |
JPA 기준 자습서 (0) | 2020.11.08 |
Django-POST 요청에서 값 가져 오기 (0) | 2020.11.08 |
Ruby에 mkdir -p가 있습니까? (0) | 2020.11.08 |