insert_string
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
컬럼 개수 오류
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 | 구분 | 개수 | 성능 |
---|---|---|---|
String | SET | 1 | 3.58us |
INSERT | 1 | 26.19us | |
MSET | 10 | 20.01us | |
INSERT | 10 | 52.39us | |
List | LPUSH | 1 | 2.12us |
INSERT | 1 | 25.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
返事がかかってなれば、メールでお知らせします。