setrange
SETRANGE
위치 지정해서 데이터 쓰기
지정한 위치부터 데이터를 씁니다. Offset은 0부터 시작합니다.
사용법은 setrange key offset value 입니다.
Example
명령> | set key "This is MySQL Server"
|
결과> | OK
|
명령> | setrange key 8 Redis
|
결과> | 20
|
명령> | get key
|
결과> | This is Redis Server
|
애니메이션 보기
Memory Usage Test
Memory usage bytes
Megabytes | Bytes | Power of 2 |
2MB | 2,097,151 | 221 -1 |
4MB | 4,194,303 | 222 -1 |
8MB | 8,388,607 | 223 -1 |
16MB | 16,777,215 | 224 -1 |
32MB | 33,554,431 | 225 -1 |
64MB | 67,108,863 | 226 -1 |
128MB | 134,217,727 | 227 -1 |
256MB | 268,435,455 | 228 -1 |
512MB | 536,870,911 | 229 -1 |
Redis Server 3.2.2 and CentOS 7
Commands | Increase size(MB) | Increase size(bytes) | Return value |
setrange key2 2097151 R | 2.5MB | 2,621,520 | 2,097,152 |
setrange key4 4194303 R | 5MB | 5,242,960 | 4,194,304 |
setrange key8 8388607 R | 10MB | 10,485,840 | 8,388,608 |
setrange key16 16777215 R | 20MB | 20,971,600 | 16,777,216 |
setrange key32 33554431 R | 40MB | 41,943,120 | 33,554,432 |
setrange key64 67108863 R | 80MB | 83,886,376 | 67,108,864 |
setrange key124 134217727 R | 160MB | 167,772,456 | 134,217,728 |
setrange key256 268435455 R | 320MB | 335,544,616 | 268,435,456 |
setrange key512 536870911 R | 640MB | 671,088,936 | 536,870,912 |
바이트 536,870,912(229)을 입력하면 다음과 같은 에러가 발생한다.
그래서 2의 거듭제곱 바이트에 -1을 한 것이다.
127.0.0.1:7000> setrange key512 536870912 R
(error) ERR string exceeds maximum allowed size (512MB)
명령문
SETRANGE key offset value
- 이 명령은 version 2.2.0 부터 사용할 수 있다.
- 논리적 처리 소요시간은 처리하는 문자열에 따라 다릅니다.
짧을 경우 O(1)로 봐도 되고, 문자열이 길 경우 O(M) 입니다. M은 value(데이터)의 길이입니다.