Redis Hashes
Redis hashes look exactly how one might expect a "hash" to look, with field-value pairs
HMSET으로 여러 필드의 해쉬를 set 할 수 있고, HGET은 하나의 필드만, HMGET은 값의 배열을 반환한다.
필드의 각 값을 수정하는 것도 가능하다.
Redis Sets
strings의 순서 없는 컬렉션이다.
SADD 명령어로 set에 명령어를 추가할 수 있다. 해당 키가 이미 존재하면 추가한다.
위의 예제에서는 순서대로 반환됐지만 매 호출에 대해 순서 없이 반환한다.
"3"은 myset의 멤버가 맞지만 "30"은 아니다.
Sets은 오브젝트들간의 관계를 표현하기 좋다. 모든 오브젝트에 원하는 태그를 달아서 사용할 수 있다.
또한 주어진 태그들에대해 inverse relation을 추가할 수도 있다.
SINTER 명령어로 좀전에 만들었던 태그들의 ID로 태그를 찾을 수 있다.
웹 기반 포커게임을 예로 들면, 우선 Set으로 덱을 만든다
그리고 SPOP명령어로 원소 하나를 반환받고 셋에서 삭제하는 것으로 게임을 진행할 수 있다.
우선 SUNIONSTORE명령어를 이용해 deck을 game:1:deck으로 복사한다.
SUNIONSTORE는 set의 결과를 다른 set에 저장한다. 이를 이용해서 복사할 수 있다.
그리고 SPOP 명령어로 셋에서 원소 하나를 반환받고 삭제한다.
5장의 카드를 뽑았고, 남은 덱을 확인하기 위해 SCARD 명령어를 사용해 셋의 카디널리티를 알 수 있다.
SRANDMEMBER 명령어를 사용하면 해당 셋의 원소중 하나를 무작위로 얻을 수 있다.
'DB > Redis' 카테고리의 다른 글
Redis 외부접속 설정하기 (0) | 2021.01.11 |
---|---|
Redis 기본정리 5 (0) | 2021.01.08 |
Redis 기본정리 4 (0) | 2021.01.08 |
Redis 기본정리 2 (0) | 2021.01.07 |
Redis 기본 정리 (0) | 2021.01.07 |
댓글