Redis и неговите приложения, бележки на програмиста

Redis и неговите приложения

Redis (REmote DIctionary Server) е нерелационна високоефективна система за управление на база данни. Redis съхранява всички данни в паметта, достъпът до данните става с ключ. По желание копие от данните може да се съхранява на диск. Този подход осигурява производителност, която е десетки пъти по-добра от тази на релационните СУБД, а също така опростява разделянето на данни (рязкото).

Накратко за основното

На пръв поглед може да изглежда, че Redis не се различава много от Memcached. Всъщност както Redis, така и Memcached съхраняват данни в паметта и имат достъп до тях чрез ключ. И двете са написани на C и се разпространяват под лиценза BSD. Но в действителност има повече разлики между Redis и Memcahced, отколкото прилики.

Redis срещу Memcached, позволява съхраняване на повече от просто низове, но също и масиви (които могат да се използват като опашки или стекове), речници, набори без повторения, големи растерни изображения и набори, сортирани по някаква стойност. Разбира се, можете да работите с отделни елементи от списъци, речници и набори. Подобно на Memcached, Redis ви позволява да посочите живота на данните (по два начина - "изтриване след това" и "изтриване след ..."). По подразбиране всички данни се съхраняват завинаги.

Интересна особеност на Redis е, че е - сървър с една нишка. Това решение значително опростява поддръжката на кода, гарантира атомност на операциите и ви позволява да стартирате един процес Redis за всяко ядро ​​на процесора. Разбира се, всеки процес ще слуша на свой собствен порт. Решението е нетипично, но напълно оправдано, тъй като Redis прекарва много малко време за извършване на една операция (около сто хилядни от секундата).

Редис има репликация. Не се поддържа репликация с няколко главни копия. Всеки подчинен сървър може да действа като мастер за другите. Репликацията в Redis не води до блокиране нито на главния, нито на подчинените. Операцията за запис е разрешена на реплики. Когато главният и подчинения сървър се свържат отново след прекъсване на връзката, настъпва пълна синхронизация (повторна синхронизация).