원문 캡처 · github.com
원문 캡처 · github.com

Zedis 0.2.0은 기본 실행 방식을 단일 스레드로 바꾸고 명령어 처리와 저장 방식을 개선했다. 제작자는 단일 실행 스레드 벤치마크에서 Linux 기준 Redis 8.8.1보다 40~51%, macOS 기준 3배 빠른 성능을 냈다고 밝혔다.

Linux에서 같은 장비로 실행한 비교 결과는 다음과 같다.

항목Redis 8.8.1Zedis 0.2.0
SET (100c -P32)990k rps1,389k rps
GET (100c -P32)1,064k rps1,613k rps
SET p502.9ms2.2ms
GET p502.3ms2.0ms
GET 최대 지연 시간6.3ms2.9ms
AOF appendfsync always~200k rps~190k rps

일반 벤치마크는 영속성을 끄고 redis-benchmark -n 100000 -c 100 -P 32로 실행했다. 장비는 Ubuntu 26.04.1 LTS, Linux 7.0.0-34-generic, i7-11800H, 32GB RAM이다. AOF 수치는 릴리스 노트가 별도로 제시한 결과다.

주요 변경점은 버퍼에 들어온 명령어를 추가 할당 없이 한 번에 파싱하는 기능, 파일 입출력을 전담 스레드로 옮기고 여러 쓰기를 한 번의 fsync로 묶는 방식, 자체 해시 맵 도입이다. 제작자는 appendfsync always 처리량이 약 450 rps에서 약 190k rps로 늘었다고 밝혔다. 기본 실행기 수가 1로 바뀌었으며, 이전 동작을 원하면 executors auto를 설정해야 한다.

0.1.x에서 업그레이드할 때는 설정 파일에 aof_write_buffer_size가 있으면 삭제해야 한다. 빌드 최적화 기본값은 ReleaseFast로 바뀌었다. 이 밖에 TTL, RENAME, 정수 명령 응답, 오류 응답, AOF 기록, CONFIG 등록과 Linux 시계 초기화 관련 버그를 수정했다.

전체 변경 내역 · 릴리스 태그