Redis 3.2.0 출시!
원문은 Salvatore Sanfilippo님이 에 게재했습니다. 이 블로그 구독하기
예상보다 오래 걸렸지만 마침내 Redis 3.2.0 안정 버전이 출시되었습니다. 많은 Redis 사용자에게 유용할 만한 변경 사항들을 담고 있습니다. 지금까지 변경 내용을 여러 차례 다룬 바 있지만, 주요 내용은 다음과 같습니다.
- GEO API. 다른 Redis 자료구조와 동일한 속도와 사용 편의성으로 원하는 데이터를 위도와 경도로 인덱싱하고 반경으로 조회할 수 있습니다. API 문서는 여기에서 확인할 수 있습니다: http://redis.io/commands/#geo. GEO API의 핵심으로 남아 있는 초기 구현을 제공해 준 Matt Stancliff와, Matt이 사용한 지오 인덱싱 코드를 제공한 ARDB 개발자들에게 감사드립니다. 재작업은 거쳤지만 여전히 핵심에 자리하고 있습니다.
- 새로운 BITFIELD 명령어를 사용하면 Redis 문자열을 사용자가 지정한 크기와 오프셋을 가진 여러 정수로 구성된 비트 배열처럼 사용할 수 있습니다. 오버플로 동작을 세밀하게 제어하면서 이 작은(또는 큰) 정수들을 카운터로 활용할 수 있도록 증감 연산을 지원합니다. http://redis.io/commands/bitfield. 이 기발한 아이디어를 밀어붙이고 구현하도록 동기를 부여해 준 Yoav Steinberg에게 감사드립니다.
- Redis Cluster에도 많은 개선이 이루어졌습니다. redis-trib의 리밸런싱 기능과 더욱 개선된 레플리카 마이그레이션을 포함합니다. 다만 NAT 환경과 Docker 포트 포워딩에 대한 지원은 “unstable” 브랜치에는 구현되어 있지만, 완성도에 대한 우려로 3.2에는 백포트되지 않았습니다.
- Lua 스크립트 리플리케이션 개선. 이제 “effects replication”을 이용해 사이드 이펙트를 포함하는 스크립트를 작성할 수 있습니다. 관련 문서는 여기에서 볼 수 있습니다: http://redis.io/commands/EVAL. 이 기능 추가를 독려하고 설계에 도움을 준 Yossi Gottlieb에게 감사드립니다.
- 이제 제대로 된 Lua 스크립트 디버거를 갖추게 되었습니다: https://www.youtube.com/watch?v=IMvRfStaoyM redis-cli에서 지원됩니다. Lua 스크립팅 초기부터 복잡한 스크립트를 개발해 오며 이 기능을 간절히 원하고 개발 과정에서도 도움을 준 Itamar Haber에게 감사드립니다.
- Oran Agra가 SDS와 Jemalloc size class 설정을 개선한 덕분에 Redis의 메모리 효율이 더욱 높아졌습니다. 또한 Matt Stancliff가 기여한 새로운 List 내부 표현 덕분에 큰 리스트를 표현하는 데 이전보다 훨씬 적은 메모리만 사용합니다!
- 마침내 읽기 연산 시 어떤 키가 만료되었는지에 대해 슬레이브와 마스터가 일치하게 되었습니다. 때가 됐죠 :-)
- SPOP이 이제 선택적인 count 인자를 받습니다. 초기 구현을 제공해 준 Alon Diamant에게 감사드립니다. 이후 성능을 위해 제가 어느 정도 다시 작성했고, 꽤 빠른 결과물이 나왔습니다.
- RDB AUX 필드. 이제 RDB 파일 내부에 이를 생성한 서버, 생성 날짜 등의 정보가 포함됩니다. 머지않아 redis-cli에서도 이 필드를 파싱할 수 있게 될 것입니다(3.2.1에서, 부디). 작업량은 많지 않지만, 솔직히 이 글을 쓰면서 이제야 기억났네요.
- RDB 로딩 속도가 더 빨라졌습니다.
- Sentinel은 이제 많은 마스터를 모니터링하도록 확장할 수 있지만, 안정 버전보다는 고급 베타로 봐야 하므로 배포 전에 여러분의 환경에서 꼼꼼히 테스트해 주시기 바랍니다. Sentinel 내부 코드가 많이 변경되었습니다.
- 이 외에도 많은 것들이 있지만, 목록이 이미 충분히 깁니다.
이번 릴리스를 가능하게 해 준 모든 기여자분들, 사랑스럽고 힘이 되어 주는 Redis 사용자 여러분, 그리고 3.2.0에 들어간 많은 작업을 후원해 준 Redis Labs에 큰 감사를 드립니다.
지난 몇 주 동안 우리는 다음 버전의 Redis에서 공개될 새로운 흥미로운 기능도 함께 작업했습니다. 5월 10~11일 샌프란시스코에서 열리는 RedisConf 2016에서 발표될 예정이니 많은 기대 부탁드립니다!
안정성에 대해 한마디 덧붙이겠습니다. 늘 말씀드리지만, 소프트웨어의 안정성은 흑백처럼 명확하지 않습니다. 핑크, 옐로, 그린 같은 거죠. 농담입니다. 늘 그렇듯 회색의 음영일 뿐입니다. 3.2.0은 견고해 보이지만 그래도 갓 나온 버전입니다. 점진적으로 사용해 보면서 어떻게 동작하는지 확인해 주시고, 문제가 있으면 즉시 알려 주시기 바랍니다. 다만 오랫동안 RC 상태에 있었던 만큼, 새로운 기능이 너무 필요해 바로 배포한 용감한 사용자들에 의해 이미 충분히 테스트되었다는 것도 사실입니다.
3.2.0 전체 변경 이력은 여기에서 확인할 수 있습니다: https://raw.githubusercontent.com/antirez/redis/3.2/00-RELEASENOTES
Redis 3.2.0은 http://download.redis.io에서 tarball로 내려받거나, GitHub의 antirez/redis 저장소에서 3.2.0 태그를 가져와 얻을 수 있습니다.
즐겨 주세요!
글을 무작위로 읽기
댓글
로그인하고 댓글 남기기