Framework/.NET

ASP.NET에서의 MySQL VS Redis

kkumta 2023. 5. 3. 05:03

MySQL과 Redis의 차이가 무엇일까? 여러 가지가 있겠지만, 데이터가 저장되는 위치와 스레드의 개수가 가장 큰 차이라고 생각한다.

 

데이터가 저장되는 위치 관점에서 바라보자.

MySQL은 관계형 데이터베이스이며, 디스크에 데이터가 저장된다. Redis는 NoSQL이며, 메모리에 데이터가 저장된다.

 

스레드 개수 관점에서 바라보자.

MySQL은 스레드 풀을 통해 멀티 스레드 사용이 가능하다. Redis는 싱글 스레드를 사용한다. 이러한 차이로 인해 ASP.NET 프로그램을 개발할 때 각 DB를 활용하는 방식이 달라진다.

 

MySQL을 활용하는 서비스는 다음과 같이 등록한다. 데이터베이스에서 멀티 스레드를 활용할 수 있으므로 하나의 요청 안에서 인스턴스가 여러 번 생성되는 Transient 생명주기를 활용한다.

builder.Services.AddTransient<IAccountDb, AccountDb>();

 

Redis를 활용하는 서비스는 다음과 같이 등록한다. 데이터베이스에서 싱글 스레드를 활용하므로 한 번의 요청으로 인스턴스가 생성되면 앱이 종료될 때까지 유지되는 Singleton 생명주기를 활용한다.

builder.Services.AddSingleton<IMemoryDb, RedisDb>();