Database

Redis RDB 백업 개념Redis 는 백업을 위해 RDB 방식과 AOF 방식을 지원합니다.이 중 RDB 방식에 대해 다뤄보겠습니다. RDB 방식RDB는 특정 시점의 메모리에 있는 데이터 전체를 바이너리 파일로 저장하는 방식입니다.바이너리 파일로 저장되기 때문에 사람이 읽을 수 없습니다.AOF 파일보다 사이즈가 작아 레디스 시작시 AOF 파일보다 빨리 로드할 수 있습니다. RDB 파일기본값으로 dump.rdb 파일에 기록됩니다. RDB 저장시점redis.conf 파일에서 save 파라미터로 저장 시점을 정할 수 있습니다.RDB 를 저장하지 않기 위해서는 save 명령어를 주석처리 하면 됩니다. RDB 저장 방법SAVE 혹은 BGSAVE 명령어로 RDB 를 저장합니다.SAVE 명령 시 레디스에서는 클라이..
Redis AOF 란레디스는 데이터를 메모리에 저장합니다.레디스가 내려가면 메모리 상에 있던 데이터는 모두 유실됩니다. 이 유실을 방지하기 위해 AOF 기능을 제공하고 있습니다.AOF 는 Append Only File의 약자로, 적재, 수정, 삭제 명령이 실행될 때마다 파일에 기록되며 수정이 가능합니다. AOF 는 파라미터에 따라 '명령어가 수행될 때마다; 1초마다; OS 에서 알아서' 방식으로 디스크에 쓰여집니다. Redis AOF 저장 방식 수정 명령이 실행되는 경우 레디스는 메모리에 있는 데이터 자체를 변경시킵니다.그러나 AOF 에 저장될 때는 명령어를 파일 끝에 기록만 합니다. Append 명령어를 사용해서 데이터를 수정해 보도록 하겠습니다.( Append 는 기존에 있는 키 값에 문자열을 덧붙이..
Redis AOF 백업 개념 Redis 는 백업을 위해 RDB 방식과 AOF 방식을 지원합니다. 이 중 AOF 방식에 대해 다뤄보겠습니다. AOF 방식 AOF ( Append Only File ) 방식으로 명령이 실행될 때마다 해당 명령이 파일에 기록됩니다. 데이터 손실이 거의 없습니다. * 거의라고 표현하는 이유는 명령이 실행되면 바로 작성하는게 아니라, 버퍼에 두었다가 주기적으로 파일에 쓰는 방식이기 때문입니다. AOF 파일 기본값으로 appendonly.aof 파일에 기록됩니다. 조회 명령을 제외한 입력/수정/삭제 명령이 실행될 때마다 버퍼에 기록 후 파일로 동기화됩니다. AOF Rewrite 기능 특정 시점에 데이터 전체를 다시 쓰는 기능(rewrite)이 있습니다. 파일이 너무 커지면 OS 파일..
INCLUDES include include 에 기입된 conf 파일을 읽습니다.파라미터가 중복될 경우 마지막 파라미터를 적용하기 때문에 주의해야 합니다. 공통으로 사용해야 하는 파라미터의 경우 유용하게 사용할 수 있습니다. 1# include /path/to/local.confcs MODULES loadmodule 서버가 시작할 때 기입된 모듈을 로드합니다.모듈을 로드할 수 없으면 서버 구동은 실패합니다. 1# loadmodule /path/to/other_module.socs NETWORK bind 지정한 IP로만 레디스 서버에 접속할 수 있습니다. 1bind 127.0.0.1cs protected_mode 활성화되어 있고 bind 나 password 가 설정되어 있지 않으면 로컬 접속만 허용합니다...
Redis 통계정보 확인 방법--stat 옵션을 사용하여 통계정보를 확인할 수 있습니다.-i 옵션은 5초에 한번씩 재 수집을 하겠다는 의미입니다. 1234$ redis-cli --csv -i 5 --stat------- data ------ --------------------- load -------------------- - child -keys mem clients blocked requests connections 10 1.82M 1 0 39 (+0) 27cs 통계정보의 의미 통계정보 의미 keys 현재 Redis 서버에 있는 key 의 개수 mem 현재 Redis 서버에서 사용하는 메모리 clients 현재 Redis 서버에 연결된 클라이언트 수 blocked 특정 명령으로 대기중인 클라이언트 ..
클라이언트를 사용하여 서버에 접속하는 방법 1. redis-cli 명령어를 사용하여 Redis 서버에 접속할 수 있습니다. 12$ redis-cli127.0.0.1:6379>cs 추가 옵션 * 자주 사용될법한 옵션들을 정리하였습니다. 1. 특정 포트로 접속하는 방법-p 옵션을 사용하여 접속할 수 있습니다. 12$ redis-cli -p 6379127.0.0.1:6379>cs 2. 텍스트 파일을 읽어서 Redis 서버에 반영하는 방법--pipe 옵션을 사용하여 적재할 수 있습니다. 12345678910111213141516$ cat sample.txtset key0 value0set key1 value1set key2 value2set key3 value3set key4 value4set key5 valu..
Redis 실행 시 문제점 Redis 를 실행하는 경우 foreground 에서 동작합니다.즉 실행한 세션을 종료하거나 'Ctrl + C' 키를 입력하는 경우 Redis 데몬이 죽게됩니다. 이 문제를 방지하기 위해 background 로 동작하도록 옵션을 설정할 수 있습니다.이 때는 logfile 을 꼭 지정해야 합니다. 지정하지 않으면 로그가 날아갑니다. Redis 백그라운드 실행 방법 1. redis.conf 파일의 deamonize 옵션을 yes 로 변경합니다.2. redis.conf 파일의 logfile 에 절대경로와 파일명을 입력합니다. 12345$ grep "daemonize" redis.confdaemonize yes $ grep "logfile" redis.conflogfile "/home..
Redis 다운로드 및 설치 방법1. wget 명령어를 통해 redis 압축파일을 다운로드 합니다.제가 다운로드한 버전은 5.0.6 버전입니다.http://download.redis.io/releases/ 경로에서 다른버전도 확인할 수 있습니다. 1wget http://download.redis.io/releases/redis-5.0.6.tar.gzcs 2. 압축파일을 해제한 후 생성된 폴더로 들어갑니다. 1tar xvzf redis-5.0.6.tar.gz && cd redis-5.0.6cs 3. redis 를 설치하기 위한 툴을 다운로드 합니다.패키지 의존성이 얽혀있기 때문에 인터넷 환경에서 받아주세요. 12345sudo apt-get updatesudo apt-get install build-esse..
Order By 없는 쿼리란데이터의 출력이 항상 일관되지 않다는 것을 의미합니다.즉, [ 1, 2, 3 ] 순으로 출력되던 결과가 [ 3, 1, 2 ] 로 출력 될 수도 있습니다. Order By 유무에 따른 쿼리아래와 같은 쿼리가 있습니다.이 쿼리는 데이터의 출력이 항상 일관되다는 것을 보장할 수 있을까요?병렬로 출력하게 된다면 출력버퍼에는 매번 다른값이 출력되고 TOP 20 으로 나온 값은 매번 다르게 될 것입니다.즉, 의도하지 않은 값이 임시테이블에 들어갈 수 있게 됩니다. 12345INSERT @TEMP_TABLESELECT TOP(20) C1FROM dbo.T1 WITH(NOLOCK)WHERE C1 > @C1AND C2 = @C2cs 그럼 이 쿼리를 어떻게 변경해야 할까요?ORDER BY 를 넣..
데이터 삭제 시 TabLock 의 이슈가 발생T1 테이블의 인덱스는 아래와 같이 구성되어 있습니다. 인덱스 종류 컬럼 Clustered Index + PK C1, C2, C3, C4 이 때, 라이브 중에 아래와 같은 쿼리를 사용하여 데이터를 삭제하려고 합니다.1DELETE FROM dbo.T1 WHERE C2 = 73985cs 문제는 T1 에 C2 의 인덱스가 없어서,TabLock 이 발생하게 되고 이 시간동안에는 다른 테이블이 접근할 수 없다는 점입니다. 이런 경우 TabLock 없이 어떻게 삭제 작업을 진행할 수 있을까요?시퀀스 (identity column)를 잘 활용해 봅시다.(T1 테이블에 너무 많은 데이터가 있다면 이 작업은 적절치 않을 수 있습니다.) TabLock 없이 삭제 방법1. 작업용..
꽁담
'Database' 카테고리의 글 목록 (7 Page)