최근 운영중인 웹서버에 redis cache를 적용하려고 결정을 하였습니다. 그 이유로는 혹시 모를 db서버의 다운을 방지하려는 것도 있지만 빠른 서비스가 seo에도 큰 영향을 미칠 수 있기 때문이죠. 이런 이유로 redis cache는 필수적이라 생각했습니다. 다만 그 효과가 얼마나 될까의 궁금증이 바로 생겨났죠.
# 그래서 redis 사용시 얼마나 빠를까...
요즘은 디스크 방식이라도 메모리를 사용하는 SSD(Solid State Disk)가 많이 사용됩니다. 같은 메모리라도 처리 방식이 다르고 주메모리를 사용하는 인메모리(In-memory) 방식이 더 빠를 것이라 쉽게 예측은 가능하지만 서버 운영과 시간 및 여러가지를 고려할 때 어느 정도의 예측이 된다면 더욱 좋겠죠.
관련된 여러 글들을 찾아서 읽어봤습니다. 저 같은 궁금증이 이미 예전부터 많은 사람들이 가지고 있더군요! 대부분은 물리적인 읽고 쓰기가 인메모리 방식이 비교하지 못할만큼 빠르다는 지표를 보여주었지만 실제 상황은 많이 다릅니다. db에 기록하고 색인하여야한다는 점. 그리고 쿼리도 복잡해 질 수 있다는 점을 고려해야했죠.
그래서 얻은 결론은 일반적인 상황에서는 최소 몇배는 인메모리 방식이 더 빠르다는 점입니다. 매우 러프한 수치이지만 사실 10~20%의 성능향상도 매우 큰 수치입니다. 결론은 확실한 성능 향상을 기대할 수 있다고 판단했습니다.
참고로 고려할 점이 있다면 인메모리 중 하나인 redis를 사용한다고 가정했을때 주 데이터베이스 사용시 큰 효과를 얻기 어렵다는 점입니다. 그 이유중 하나가 쿼리가 복잡해지고 데이터가 많아질 수록 단순 속도보다는 기능적 기술적 차이에서 전혀 다른 상황이 전개될 수 있기 때문입니다. 이런 이유로 캐싱 또는 메시지 서비스 등에 사용하는 것이 많은 것이고 이렇게해야 가장 큰 성능을 확보할 수 있을 것이겠죠.