Keys 관련 명령어 예제 - KEYS설명(KEYS) : 패턴에 일치하는 모든키를 반환합니다. 이 연산의 시간복잡도는 O(N)이지만 시간은 상당히 낮다. 레디스는 40밀리 초 내에 백만개의 데이터를 스캔할 수 있다.주의 : KEYS 명령어는 조심스럽게 사용해야 하며 대규모 데이터베이스에서 실행되면 성능이 저하 될 수 있다.시간복잡도 : O(N)redis-cli > KEYS patternPATTERN : h?llo => hello, hallo, hxlloh*llo => hllo, heeeello, haaaalloh[ae]lo => hello, hallo, hillo (X)h[^e]llo => hallo, hillo, hello (X)h[a-b]llo => hallo, hbllo redis > MSET on..
Sets 관련 명령어 예제 - SADD 설명 : 키에 저장된 집합에 지정된 멤버를 추가합니다. 이 집합의 구성원 인 경우 지정된 멤버는 무시됩니다. key가 없으면 지정된 멤버를 추가하기 전에 새 세트가 만들어집니다. 시간복잡도 : O(1) redis-cli > SADD key member [member ...] redis > SADD test hello world (integer) 1 redis > SADD test world (integer) 0 redis > SMEMBERS test 1) "hello" 2) "world" - SMEMBERS 설명 : 키에 저장된 설정 값의 모든 멤버를 반환합니다. 시간복잡도 : O(1) redis-cli > SMEMBERS key redis > SMEMBERS te..
Strings 관련 명령어 예제 - SET, GET 설명(SET) : 가장 기본적인 데이터 입력 형태로 키와 값을 입력한다. 만약 키에 값이 이미 지정되어 있으면 타입에 상관없이 덮어씌워 진다. 설명(GET) : 가장 기본적인 데이터 출력 형태이며 키에 값이 없으면 nil을 반환한다 시간복잡도 : O(1) redis-cli > SET key value [EX seconds] [PX milliseconds] [NX|XX] 옵션 : - EX seconds : 만료시간을 초 단위로 설정 - PX milliseconds : 만료시간을 밀리초 단위로 설정 - NX : 값이 존재 하지 않을 경우에만 키 값에 값을 저장 - XX : 값이 존재할 경우에만 키 값에 덮어씀 redis-cli > GET key redis ..
List 관련 명령어 예제 - LPUSH, RPUSH, LRANGE 설명(LPUSH) : 지정된 모든 값을 키에 저장된 목록의 처음에 넣습니다. 키가 없으면 조작을 수행하기 전에 키가 빈 목록으로 작성 설명(RPUSH) : 지정된 모든 값을 키에 저장된 목록의 끝에 넣습니다. 키가 없으면 조작을 수행하기 전에 키가 빈 목록으로 작성 설명(LRANGE) : list형식으로 저장된 키의 값을 개수를 인덱스를 지정하여 가져올 수 있음. 음수의 경우일 경우는 마지막 값을 의미 -1 은 마지막 값, -2 마지막에서 2번째 값, -3 마지막에서 3번째 값 시간복잡도 : O(1) redis-cli > LPUSH key value [value ...] redis-cli > RPUSH key value [value ....
PUB/SUB 설명 레디스를 사용하는 가장 큰 이유가 속도는 물론 아마 pub/sub 기능 때문이 아닐 까 싶다. SUBSCRIBE, UNSUBSCRIBE, PUBLISH는 게시자/구독자의 메시지 패러다임을 구현한다. 게시된 메시지는 구독자가 무엇인지에 대한 지식없이 채널로 특징이 지어진다. 구독자(SUBSCRIBE)는 하나 이상의 채널에 관심을 표명하고 해당 게시자가 누구인지에 대해 알 필요가 없고 관심있는 메시지만 수신을 한다. 이렇게 게시자와 구독자를 분리하면 확장성이 향상되고 보다 동적인 네트워크 토폴로지가 가능해진다. 특정 채널을 구독하는 방법은 다음과 같이 아주 간단하다. redis > SUBSCRIBE channel [channel ...] 위와 같이 간단하게 구독이 가능하며 발행자는 다른 ..
레디스를 사용하다보면DENIED Redis is running in protected mode because protected 다음과 같은 에러를 볼 수 있는데 Redis 3.2 부터인가 보안 모드가 추가되어서 패치되었다고 한다. 주로 원격에서 레디스 서버로 접속할 때 에러가 뜬다. 2가지 방법이 있는데 레디스 서버에서 1) 직접 입력 127.0.0.1:6379> config set protected-mode no 2) config 파일 수정 보통 /etc/redis/redis.conf ( 파일 설정 하는 곳마다 위치가 다르다 ) protected-mode와 bind를 수정한다. #protected-mode yes protected-mode no #bind 그리고 레디스 서버 재시작 하면 접속이 잘 되는..