많은 사람들이 json에 데이터를 저장하기 위해 mysql의 MEMORY 엔진보다 redis를 사용하는 것을 선호하는 것으로 보입니다. 이 엔진의 성능이 좋지 않기 때문인가요? 일부 국내 오픈소스 프로젝트에서는 기본적으로 이 엔진을 사용하지 않는 것으로 나타났습니다. 이유는 무엇입니까?
많은 사람들이 json에 데이터를 저장하기 위해 mysql의 MEMORY 엔진보다 redis를 사용하는 것을 선호하는 것으로 보입니다. 이 엔진의 성능이 좋지 않기 때문인가요? 일부 국내 오픈소스 프로젝트에서는 기본적으로 이 엔진을 사용하지 않는 것으로 나타났습니다. 이유는 무엇입니까?
저장된 데이터 형식이 더 복잡한 경우가 많습니다. 데이터를 KV 형식으로 저장한 다음 파싱하기 쉬운 JSON 형식으로 저장하는 것이 더 편리합니다.
신뢰성 측면에서는 Redis가 더 좋습니다 -- MySQL의 메모리 테이블은 정전 후 데이터를 잃게 되지만 redis가 더 좋습니다
우선, redis는 mysql보다 몇 배 더 빠릅니다.
그래서:
1. 데이터의 양이 많지 않습니다 && 자주 액세스하는 데이터의 양이므로 redis에 넣는 것이 좋습니다. 여기서 데이터의 양은 Redis 서버의 메모리 크기를 나타낼 수 있습니다. 데이터의 양이 Redis 서버의 메모리 크기보다 작다면 Redis에 넣는 것을 고려해 볼 수 있습니다.
2.Redis 액세스는 mysql보다 간단합니다.
먼저 MySQL의 메모리 엔진에 대해 알아봅시다
<code>http://dev.mysql.com/doc/refman/5.7/en/memory-storage-engine.html </code>
Unsupport가 몇 개인지 보세요.
다시 Redis와의 비교로 돌아가서 세 가지 포인트를 말씀드리겠습니다
Mysql의 메모리 엔진은 만료 날짜를 지원하지 않습니다. 수동으로 삭제해야 하나요?
데이터를 저장하기 전에 테이블을 만들어야 합니다. 데이터가 행과 열로 되어 있지 않고 순서가 없으면 어떻게 되나요?
프런트엔드로 반환하는 JSON 문자열인가요, 아니면 데이터베이스에서 가져온 직렬화된 Model 클래스인가요? 그렇다면 Redis에서 JSON 문자열을 가져와서 직접 반환하면 어떨까요?
물론 Mysql의 메모리 엔진도 위와 같은 기능을 할 수 있지만 통증 지수가 많이 높아져서 위의 시나리오에는 가위를 사용하여 나무를 썰 수는 없겠죠? 줄일 수는 있지만.
원자성 0-0의 더 깊은 비교에 관해서는 여주와 사과의 단맛을 비교할 것이기 때문에 이것의 외관을 논할 때가 아닌 것 같습니다.