/moments_v2_backend

backend for a sharing app using SpringBoot, Redis, MySQL, and AWS S3.

Primary LanguageJava

moments_v2_backend (Work In Progress)

backend for a sharing app using SpringBoot, Redis, MySQL, and AWS S3.

This is the second version of my project ShareOurDays's backend. I added more features like getting most-popular users or posts. I built this project while learning and using SpringBoot, Redis, and MySQL.

Highlights

  1. applied AOP in exception handling, logging, and access control, which substansively removed redundant code.
  2. integrated multithreading and thread pool to take advantage of mutil-core CPU.
  3. added cache layer using Redis to enhance performance
  4. used MyBatis to achieve ORM

How to Maintain the Consistency between MySQL and Redis?

Query Data Process

Query Data Process

Delete Data Process

Delete Data Process

Insert/Update Data Process

Insert/Update Data Process

TODOS

  1. add ElasticSearch for user & post searching feature;
  2. configure MySQL clusters to separate db-read and db-write to MySQL master node and slave node;