programing tip

Redis 키에서 콜론의 목적은 무엇입니까

itbloger 2020. 11. 8. 09:32
반응형

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

반응형