Igbinary
Igbinary
PHP의 기본 직렬화 함수에는 serialize()와 unserialize()가 있어요. 그런데 이 함수가 만드는 결과는 텍스트 형태라 문자열이 길어지고, memcached나 APCu처럼 메모리 기반 저장소에 잔뜩 넣어 두면 공간이 아깝죠. Igbinary는 이런 고민에서 출발한 확장이에요. 표준 PHP 직렬화 함수를 그대로 대체(drop-in replacement)하는 방식으로 동작해요.
출처: Igbinary
본문
Igbinary는 표준 PHP 직렬화 함수를 그대로 대신 쓸 수 있는 확장이에요. PHP의 serialize()가 쓰는 시간·공간을 많이 차지하는 텍스트 표현 대신, igbinary는 PHP 데이터 구조를 컴팩트한 바이너리(binary) 형태로 저장해요.
memcached, APCu처럼 메모리 기반 저장소에 직렬화 데이터를 보관할 때 절약 효과가 특히 커요. 저장 공간이 보통 약 50% 줄어들어요. 정확한 비율은 데이터에 따라 달라요.
설치·설정(Installing/Configuring)
- 설치(Installation)
- 런타임 설정(Runtime Configuration)
Igbinary 함수(Igbinary Functions)
igbinary_serialize— 값을 컴팩트하고 저장 가능한 바이너리 표현으로 생성해요(Generates a compact, storable binary representation of a value).igbinary_unserialize—igbinary_serialize가 만든 저장 형태에서 PHP 값을 만들어요(Creates a PHP value from a stored representation from igbinary_serialize).
더 알아보기
- 직렬화의 기본 개념과
serialize()/unserialize()의 동작 방식을 함께 보면 Igbinary가 무엇을 대체하는지 더 빨리 이해할 수 있어요. - 실제 저장 크기 절감은 연결한 캐시 저장소(예: memcached, APCu)에서 직접 확인해 보는 것이 좋아요.