2024년에 Redis 7.2.4 부터 라이센스 이슈로 Valkey 가 fork 되면서 많은 사람들이 Redis와 Valkey 중에 무엇을 사용해야 하는가? 그럼 어떤 차이가 있는지에 대한 질문이 꽤 많습니다. 그래서 거기에 대한 간단한 의견(답정너) 를 소개하려고 합니다.
일반적으로 클라우드 기반에서 사용하던 분들 특히 AWS의 ElastiCache 를 쓰는 분들은 그냥 Redis 쓰는 것보다 Valkey로 가셔도 전혀 문제가 없습니다.(비용이 더 싸진다는 장점만 있다고 보시면 됩니다.) 왜냐하면 클라우드에서 쓸 수 있는 Redis 버전은 기본적으로 7.2.4 의 이전 버전들이라, 그 시점은 Valkey가 Fork 되면서 그대로 이전했기 때문입니다. 즉, 기존 Redis 를 제공하는 클라우드의 내부 버전이 다르더라도 그냥 제품명만 Redis -> Valkey로 바꿔서 그대로 제공이 됩니다. 그냥 바꾸면 변경이 되는 수준입니다.
그럼, 실제로 문제가 되는 것은 어떤 상황일까요? 현재 우리가 Redis를 자체적으로 운영하고 있는데, Valkey로 바꾸어야 되는가 입니다. 이 이야기를 하기 전에 Redis와 Valkey가 이제 차이가 나는가? 라는 주제 부터 얘기를 해야 합니다. Redis 8과 Valkey 8이 2025년에 나오면서 조금씩 큰 차이가 벌어지고 있습니다.
Redis Module 이야 대부분이 원래 RSAL 라이센스라, 클라우드에서 제공이 안되었지만, Redis 는 사용자의 편의성 기능과 AI쪽에 좀 더 집중하고 있는 모습입니다.
Redis는 7 버전 이후에 Hash 에 서브 Key를 Expire 하는 기능이 들어갔지만, Valkey에는 들어가지 않았습니다.(포크가 되는 시점에, 개발되고 있다가, 포크되고 반영된…) Redis 8에는 VectorSet 이나 AutoComplete 등 AI 지원 기능이나 편의성 기능이 이번에 많이 추가 되었습니다.(내부적으로 콜렉션등에 성능개선도 있었다고…)
Valkey 는 8 버전부터, CPU Cache Line을 맞추거나, 포인터 접근 횟수를 줄여서, 좀더 메모리를 아끼거나, 성능을 높이는 쪽으로 가고 있습니다. 그래서 8부터는 명령이나 이런 부분에서 어느정도 차이가 나고 있습니다.(다만 아직 기본 명령 보다는, 모듈쪽에서 차이가 나는거 같습니다.)
그럼 발전성은 어떨까요? Redis 8이 AGPLv3가 추가되면서 기업에서 뭔가 사용하기가 어려워졌지만, 여전히 Redis(회사) 가 많은 지원을 하고 있고, 가장 많은 컨트리뷰션을 하고 있습니다. 반대로 Valkey는 리눅스 파운데이션과 AWS, 알리바바 등 지원이 있지만, Redis 보다는 조금 덜 활성화 된걸로 보입니다.
결국 선택의 우리의 몫입니다. 다만 정말 특별한 기능을 사용하지 않고, 기존 흐름을 따르는 형태에서는 뭘 선택해도 당장은 큰 문제는 없어보입니다. 하지만, 새로운 Redis 기능을 써야 한다면, 이제 좀 고민을 하셔야 될듯 합니다.