INSERT String


형식: INSERT INTO DATATYPE VALUES('KEY','VALUE')
  예  : INSERT INTO STRING VALUES('KEY','VALUE')

STRING 입력

  • String key, value를 입력합니다. insert into string values('key','value')
  • 컬럼 명은 지정하지 않습니다. insert into string (key,value) values('key','value')
    이하 다른 datatype에도 동일하게 적용됩니다.
  • 1 row(key, value) 입력: insert into string values('key','value')
  • 여러 row 입력: insert into string values('key2','value2'), ('key3','value3'), ('key3','value3')
  • 기존 키가 있으면 덮어씁니다(overwrite). 이것은 SET 명령의 작동과 동일합니다.
  • Multi-row(여러 개 key, value 쌍 입력)은 1000까지 가능합니다. 이것은 MSET 명령의 작동과 동일합니다. multi-row 1000개까지는 이하 다른 datatype에도 동일하게 적용됩니다.

Example

명령>insert into string values('key01','value');   opcode
결과>1 inserted
명령>insert into string values('key02','value2'), ('key03','value3'), ('key04','value4');   opcode
결과>3 inserted

컬럼 개수 오류

Example

명령>insert into string values('key04');
결과>ERR table string has 2 columns but 1 values were supplied
명령>insert into string values('key04','value1','value2');
결과>ERR table string has 2 columns but 3 values were supplied

Value에 입력 가능한 것들

숫자 계산 결과: 10+20, 10*20

  • insert into string values('key05',10+20); -> 30   opcode
  • insert into string values('key06',10*20); -> 200   opcode

Function 사용

  • insert into string values('key07', min(10,20)); -> 10   opcode
  • insert into string values('key08', max(10,20)); -> 20   opcode
  • insert into string values('key09', round(12.675,1)); -> 12.7   opcode
  • insert into string values('key10', upper('value')); -> 'VALUE'   opcode
  • insert into string values('key11', trim(' value ')); -> 'value'   opcode
  • insert into string values('key12', left('redisgate',5)); -> 'redis'   opcode
  • insert into string values('key13', 'AAA'||'BBB'); -> 'AAABBB'   opcode
  • insert into string values('key14', date('now','localtime')); -> '2022-02-18'   opcode
  • insert into string values('key15', datetime('now','localtime')); -> '2022-02-18 13:41:18'   opcode
  • insert into string values('key16', strftime('%Y-%m-%d %H:%M:%S','now','localtime'));   opcode
    -> '2022-02-18 13:41:22'

Performance 성능


String

  • for i in {1..10000}; do src/redis-ecli -p 7000 set key$i value$i; done -> 3.53us
  • for i in {1..10000}; do src/redis-ecli -p 7000 insert "insert into string values('key$i','value$i')"; done -> 26.19us
  • 10개 key, value 입력
  • for i in {1..10000}; do src/redis-ecli -p 7000 mset keyA$i valueA$i keyB$i valueB$i keyC$i valueC$i keyD$i valueD$i keyE$i valueE$i keyF$i valueF$i keyG$i valueG$i keyH$i valueH$i keyI$i valueI$i keyJ$i valueJ$i; done -> 20.01us
  • for i in {1..10000}; do src/redis-ecli -p 7000 insert "insert into string values('keyA$i','valueA$i'),('keyB$i','valueB$i'),('keyC$i','valueC$i'),('keyD$i','valueD$i'),('keyE$i','valueE$i'),('keyF$i','valueF$i'),('keyG$i','valueG$i'),('keyH$i','valueH$i'),('keyI$i','valueI$i'),('keyJ$i','valueJ$i')"; done -> 52.39us

각각 1만회 실행 평균 소요 시간(단위: us(microsecond))

  • 1개 key, value 입력 시 레디스 원래 명령 평균 시간 2.8us, insert 평균 시간 26.0us -> 약 9.2배 차이
  • 10 or 20개 value 입력 시 레디스 원래 명령 평균 시간 16.9us, insert 평균 시간 49.2us -> 약 2.9배 차이
Datatype구분개수 성능
StringSET 13.58us
INSERT 126.19us
MSET 1020.01us
INSERT 10 52.39us
ListLPUSH 12.12us
INSERT 125.15us

OPCODE


insert into string values('key01','value');

insert into string values('key02','value2'), ('key03','value3'), ('key04','value4');


Value에 입력 가능한 것들 OPCODE


insert into string values('key05',10+20);

insert into string values('key06',10*20);

insert into string values('key07', min(10,20));

insert into string values('key08', max(10,20));

insert into string values('key09', round(12.675,1));

insert into string values('key10', upper('value'));

insert into string values('key11', trim(' value '));

insert into string values('key12', left('redisgate',5));

insert into string values('key13', 'AAA'||'BBB');

insert into string values('key14', date('now','localtime'));

insert into string values('key15', datetime('now','localtime'));

insert into string values('key16', strftime('%Y-%m-%d %H:%M:%S','now','localtime'));


<< Insert Intro Insert String Insert List >>

Email 답글이 올라오면 이메일로 알려드리겠습니다.