├── .github └── workflows │ └── maven.yml ├── .gitignore ├── LICENSE ├── README.md ├── class diagram └── cache-low-level-design.png ├── pom.xml └── src ├── main └── java │ └── com │ └── company │ ├── Main.java │ ├── algorithm │ ├── DoublyLinkedList.java │ ├── DoublyLinkedListNode.java │ └── exception │ │ └── InvalidElementException.java │ └── cache │ ├── Cache.java │ ├── exception │ ├── NotFoundException.java │ └── StorageFullException.java │ ├── factory │ └── CacheFactory.java │ ├── policies │ ├── EvictionPolicy.java │ └── LRUEvictionPolicy.java │ └── storage │ ├── HashMapBasedStorage.java │ └── Storage.java └── test └── java ├── algorithm └── DoublyLinkedListTest.java └── cache ├── CacheTest.java └── policies └── LRUEvictionPolicyTest.java /.github/workflows/maven.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amarlearning/cache-low-level-design/HEAD/.github/workflows/maven.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amarlearning/cache-low-level-design/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amarlearning/cache-low-level-design/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amarlearning/cache-low-level-design/HEAD/README.md -------------------------------------------------------------------------------- /class diagram/cache-low-level-design.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amarlearning/cache-low-level-design/HEAD/class diagram/cache-low-level-design.png -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amarlearning/cache-low-level-design/HEAD/pom.xml -------------------------------------------------------------------------------- /src/main/java/com/company/Main.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amarlearning/cache-low-level-design/HEAD/src/main/java/com/company/Main.java -------------------------------------------------------------------------------- /src/main/java/com/company/algorithm/DoublyLinkedList.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amarlearning/cache-low-level-design/HEAD/src/main/java/com/company/algorithm/DoublyLinkedList.java -------------------------------------------------------------------------------- /src/main/java/com/company/algorithm/DoublyLinkedListNode.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amarlearning/cache-low-level-design/HEAD/src/main/java/com/company/algorithm/DoublyLinkedListNode.java -------------------------------------------------------------------------------- /src/main/java/com/company/algorithm/exception/InvalidElementException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amarlearning/cache-low-level-design/HEAD/src/main/java/com/company/algorithm/exception/InvalidElementException.java -------------------------------------------------------------------------------- /src/main/java/com/company/cache/Cache.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amarlearning/cache-low-level-design/HEAD/src/main/java/com/company/cache/Cache.java -------------------------------------------------------------------------------- /src/main/java/com/company/cache/exception/NotFoundException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amarlearning/cache-low-level-design/HEAD/src/main/java/com/company/cache/exception/NotFoundException.java -------------------------------------------------------------------------------- /src/main/java/com/company/cache/exception/StorageFullException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amarlearning/cache-low-level-design/HEAD/src/main/java/com/company/cache/exception/StorageFullException.java -------------------------------------------------------------------------------- /src/main/java/com/company/cache/factory/CacheFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amarlearning/cache-low-level-design/HEAD/src/main/java/com/company/cache/factory/CacheFactory.java -------------------------------------------------------------------------------- /src/main/java/com/company/cache/policies/EvictionPolicy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amarlearning/cache-low-level-design/HEAD/src/main/java/com/company/cache/policies/EvictionPolicy.java -------------------------------------------------------------------------------- /src/main/java/com/company/cache/policies/LRUEvictionPolicy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amarlearning/cache-low-level-design/HEAD/src/main/java/com/company/cache/policies/LRUEvictionPolicy.java -------------------------------------------------------------------------------- /src/main/java/com/company/cache/storage/HashMapBasedStorage.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amarlearning/cache-low-level-design/HEAD/src/main/java/com/company/cache/storage/HashMapBasedStorage.java -------------------------------------------------------------------------------- /src/main/java/com/company/cache/storage/Storage.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amarlearning/cache-low-level-design/HEAD/src/main/java/com/company/cache/storage/Storage.java -------------------------------------------------------------------------------- /src/test/java/algorithm/DoublyLinkedListTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amarlearning/cache-low-level-design/HEAD/src/test/java/algorithm/DoublyLinkedListTest.java -------------------------------------------------------------------------------- /src/test/java/cache/CacheTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amarlearning/cache-low-level-design/HEAD/src/test/java/cache/CacheTest.java -------------------------------------------------------------------------------- /src/test/java/cache/policies/LRUEvictionPolicyTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amarlearning/cache-low-level-design/HEAD/src/test/java/cache/policies/LRUEvictionPolicyTest.java --------------------------------------------------------------------------------