본문 바로가기

Web 프로그래밍/Redis8

[Redis] Protected Mode (DENIED Redis is running in protected mode because protected...) 레디스를 사용하다보면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 그리고 레디스 서버 재시작 하면 접속이 잘 되는.. 2017. 5. 31.
[Redis] Hashes 명령어 설명 및 예제 Hashes 관련 명령어 예제 HSET 하나의 객체에 여러개의 변수를 담을 수 있는 구조 라고 생각하면 편하겠다. Man이라는 객체가 있다면 Man.age = 30 Man.name = Jung Man.gender = M Man.job = developer Man이 key age, name, gender, job ... = filed 와 비슷한 구조라고 보면된다. - HSET, HGET 설명(HSET) : key에 저장된 해시 필드를 설정합니다. 설명(HGET) : key filed에 저장된 값을 불러온다 시간복잡도 : O(1) redis-cli > HSET key field value redis-cli > HGET key field redis > HSET man age 30 (integer) 1 redi.. 2017. 4. 5.
[Redis] Keys 명령어 설명 및 예제 Keys 관련 명령어 예제 - KEYS 설명(KEYS) : 패턴에 일치하는 모든키를 반환합니다. 이 연산의 시간복잡도는 O(N)이지만 시간은 상당히 낮다. 레디스는 40밀리 초 내에 백만개의 데이터를 스캔할 수 있다. 주의 : KEYS 명령어는 조심스럽게 사용해야 하며 대규모 데이터베이스에서 실행되면 성능이 저하 될 수 있다. 시간복잡도 : O(N) redis-cli > KEYS pattern PATTERN : h?llo => hello, hallo, hxllo h*llo => hllo, heeeello, haaaallo h[ae]lo => hello, hallo, hillo (X) h[^e]llo => hallo, hillo, hello (X) h[a-b]llo => hallo, hbllo redis .. 2017. 3. 28.
[Redis] Pub/Sub 설명 PUB/SUB 설명 레디스를 사용하는 가장 큰 이유가 속도는 물론 아마 pub/sub 기능 때문이 아닐 까 싶다. SUBSCRIBE, UNSUBSCRIBE, PUBLISH는 게시자/구독자의 메시지 패러다임을 구현한다. 게시된 메시지는 구독자가 무엇인지에 대한 지식없이 채널로 특징이 지어진다. 구독자(SUBSCRIBE)는 하나 이상의 채널에 관심을 표명하고 해당 게시자가 누구인지에 대해 알 필요가 없고 관심있는 메시지만 수신을 한다. 이렇게 게시자와 구독자를 분리하면 확장성이 향상되고 보다 동적인 네트워크 토폴로지가 가능해진다. 특정 채널을 구독하는 방법은 다음과 같이 아주 간단하다. redis > SUBSCRIBE channel [channel ...] 위와 같이 간단하게 구독이 가능하며 발행자는 다른 .. 2017. 3. 22.
[Redis] List 명령어 설명 및 예제 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 .... 2017. 3. 20.
[Redis] Strings 명령어 설명 및 예제 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 .. 2017. 3. 12.