본문 바로가기
DB/Redis

Redis 기본 정리3

by COCO1337 2021. 1. 8.

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

댓글