팀 프로젝트에서 JWT를 사용하게 되었다.
Refresh Token, Acess Token Blacklist를 저장해야 하는데 Redis 말고 MySQL의 Memory Engine을 사용해보는 건 어떨까 하는 생각이 들어 알아보았다.
결론부터 말하자면 대부분의 경우 Redis를 사용하는게 낫다.
성능 문제를 제쳐두더라도, MySQL의 Memory Engine은 비교적 한정적인 상황에서 사용할 수 있는데 반해 Redis는 더 다양한 상황에서도 사용 가능하기 때문이다.
하지만 우리 프로젝트에는 MySQL의 Memory Engine을 사용하기로 했다.
일단 MySQL의 Memory Engine을 사용하고 테스트를 거치면서 성능적인 문제가 심하다면 수정을 하기로 했다.
https://dev.mysql.com/doc/refman/8.0/en/memory-storage-engine.html
https://stackoverflow.com/questions/38293242/in-memory-mysql-table-vs-redis-about-insert-and-concurrency-performance
https://goodgid.github.io/Redis/#redis%EC%9D%98-%ED%8A%B9%EC%A7%95
https://stackoverflow.com/questions/59426682/does-redis-need-locking
https://developpaper.com/question/why-is-mysqls-memory-engine-not-widely-used-as-redis/