An implementation of Redis database.
Redis is a (mainly) in-memory storage, used as a Database of type key-value in memory, as well as cache and message broker, with persistence option of the data.
This version implements:
- Client/Server architecture
- TCP Protocol
- Server multithreading
- Request and response Redis Protocol
- Three different types of data structures: strings, lists, sets
- Keys expiration
- Periodic persistence of data to disk storage (snapshots feature)
- Publishers/subscribers functionality
- Garbage collector: lazy and periodic deletion
All this project was made using technics as: Automated Unit Testing, Automated Integration Tests using a Redis client to the Rust language (an external crate), Error Handling and versions control.
The web server that receives requests from browsers, communicating with them through the HTTP/1.1 protocol. The description of this protocol is the one corresponding to RFC 2616.
This version implements:
- Client/Server architecture
- HTTP Protocol
- Server multithreading (by a Threadpool)
- Datapacks and resources routing.
- Graphic Interface.
Nombre | Padrón | |
---|---|---|
FIRMAPAZ, Agustin Ezequiel | 105172 | afirmapaz@fi.uba.ar |
PACHECO, Federico Jose | 104541 | fpacheco@fi.uba.a |
PANETTA, Martina Agata | 103713 | mpanetta@fi.uba.ar |
This project was proposed and guided by Taller de Programacion I (Deymonnaz), Facultad de Ingenieria, Universidad de Buenos Aires.