Victor Dudochkin 10 ноября 2021
Бпонсорский ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»

πŸ“± Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ хостинг для мобильного прилоТСния. Π§Π°ΡΡ‚ΡŒ вторая: Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ систСмы ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ

Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ части нСбольшого Ρ†ΠΈΠΊΠ»Π° статСй ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярныС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ систСм ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… ΠΏΠΎ созданию ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
πŸ“± Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ хостинг для мобильного прилоТСния. Π§Π°ΡΡ‚ΡŒ вторая: Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ систСмы ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ

ΠœΡ‹ рассмотрСли Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ сСтСвого взаимодСйствия с сСрвСрной стороной ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ прСдставлСниС ΠΎ трСбованиях ΠΊ пропускной способности ΠΊΠ°Π½Π°Π»ΠΎΠ² связи ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти сСрвСра Π½Π° основС потрСбностСй прилоТСния ΠΈ возмоТностСй программистов.

Π­Ρ‚ΠΎΡ‚ Ρ†ΠΈΠΊΠ» статСй написан совмСстно с нашим ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€ΠΎΠΌ – ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Selectel.

Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ Ρ†ΠΈΠΊΠ»Π°:

Π‘Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ

НачнСм ΠΎΠ±Π·ΠΎΡ€ с классичСских рСляционных Π‘Π£Π‘Π”, ΠΏΠ»Π°Π²Π½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ NoSQL ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠΌ ΠΎΠ±Π·ΠΎΡ€ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ для ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ. Π― Π½Π΅ ΠΏΠΎΠΊΠ»ΠΎΠ½Π½ΠΈΠΊ MySQL ΠΈ Π½ΠΈΡ‡Π΅Π³ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ ΠΈΠ»ΠΈ ΠΏΠ»ΠΎΡ…ΠΎΠ³ΠΎ я ΠΎΠ± этой Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ скаТу. Π•ΡΡ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽ Π΅ΠΉ Π½Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ сразу ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ PostgreSQL.

πŸ“± Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ хостинг для мобильного прилоТСния. Π§Π°ΡΡ‚ΡŒ вторая: Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ систСмы ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ

PostgreSQL

PostgreSQL – это надСТная рСляционная Π‘Π£Π‘Π” ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ уровня с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ»Π΅Ρ‚Π½Π΅ΠΉ историСй Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. ВсС, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚ рСляционной Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, присутствуСт Π² PostgreSQL. Если вас бСспокоит ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ, обслуТиваниС тысяч запросов ΠΈΠ· сотСн Ρ‚Π°Π±Π»ΠΈΡ†, ΠΈ максимальноС использованиС SQL, ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ настроСнный PostgreSQL ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ справится с этой Π·Π°Π΄Π°Ρ‡Π΅ΠΉ.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ PostgreSQL полагаСтся Π½Π° ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ записи ΠΈΠ»ΠΈ объСмов Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ максимально ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ доступныС Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ рСсурсы. PostgreSQL Π΄Π΅Π»Π°Π΅Ρ‚ это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… стратСгий индСксирования ΠΈ Ρ‚ΠΈΠΏΠΎΠ² индСксов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ запроса.

PostgreSQL ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΡΡ‚ΡŒ мноТСством способов, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, использованиС ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹Ρ… языков PL/PGSQL, Perl, Python ΠΈ Π΄Ρ€.. МногиС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ PostGIS – ΠΌΠΎΠ΄ΡƒΠ»ΡŒ для гСопространствСнного Π°Π½Π°Π»ΠΈΠ·Π°.

Если Ρƒ вас ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ модСль структурированных Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚ΠΎ PostgreSQL Π±ΡƒΠ΄Π΅Ρ‚ Π»ΡƒΡ‡ΡˆΠΈΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ.

πŸ“± Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ хостинг для мобильного прилоТСния. Π§Π°ΡΡ‚ΡŒ вторая: Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ систСмы ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ

MongoDB

MongoDB – это систСма управлСния Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ориСнтированная Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, ΠΈ Π² настоящСС врСмя ΠΎΠ½Π° являСтся самым популярным Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ NoSQL.

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ рСляционных Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…, MongoDB основана Π½Π° Π½Π°Π±ΠΎΡ€Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… состоит ΠΈΠ· Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΊΠ»ΡŽΡ‡/Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ эквивалСнт строки Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ ΠΈΠΌΠ΅Π½ΠΈ столбца, Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ строки. ОсновноС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ схСмой ΠΈΠ»ΠΈ столбцами Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅. Π”Π²Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ элСмСнты, Π²Ρ€ΠΎΠ΄Π΅ поля ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Ρ‚ΡŒ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Ρ€Π°Π·Π½Ρ‹Π΅ элСмСнты.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ MongoDB допускаСт динамичСскоС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ схСмы, ΠΈΡ… Π»Π΅Π³ΠΊΠΎ Π²Π½ΠΎΡΠΈΡ‚ΡŒ Π±Π΅Π· нСобходимости ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»Ρ‹Π²Π°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ структуру Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, иСрархия Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π»Π΅Π³ΠΊΠΎ сопоставляСтся с иСрархиями ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² ΠΊΠΎΠ΄Π΅ прилоТСния, упрощая ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ создания, чтСния, обновлСния ΠΈ удалСния.

PostgreSQL vs MongoDB ΠΏΠΎ-чСстному

Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ тСсты ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ PostgreSQL прСвосходит MongoDB Π² Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ°Ρ… Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½Ρ‹Ρ…. Однако ΠΏΡ€ΠΈ сравнСнии ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ JSON ΠΌΠ΅ΠΆΠ΄Ρƒ PostgreSQL ΠΈ MongoDB Π΅ΡΡ‚ΡŒ тСсты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ прСимущСства для ΠΎΠ±Π΅ΠΈΡ… Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ….

МоТно ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΈ ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ эти Π΄Π²Π΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ…Π²Π°Π»ΠΈΡ‚ своС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. Если ΠΆΠ΅ ΠΏΠΎΠ΄ΠΎΠΉΡ‚ΠΈ Π² вопросу с тСхничСской стороны, Ρ‚ΠΎ PostgreSQL ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ Π΄Π΅Ρ€Π΅Π²ΡŒΡ для индСксирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π° HDD. Π’ Ρ‚ΠΎΠΆΠ΅ врСмя Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ соврСмСнных Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… (RocksDB, MongoDB, Tarantool ΠΈ Ρ‚.Π΄.) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ LSM-Π΄Π΅Ρ€Π΅Π²ΠΎ (Log-structured merge-tree – ΠΆΡƒΡ€Π½Π°Π»ΡŒΠ½ΠΎ структурированноС Π΄Π΅Ρ€Π΅Π²ΠΎ со слияниСм) вмСсто классичСского B-Tree.

Π‘ΠΈΠ½Π°Ρ€Π½ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ чтСния ΠΈ поиск, Π΄Π΅Ρ€Π΅Π²ΠΎ LSM ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ Π½Π° доступ ΠΊ часто измСняСмым Π΄Π°Π½Π½Ρ‹ΠΌ ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ с SDD.

Index Clients TPS – Π’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π² сСкунду
Inclusive B-Tree 1 9387
Inclusive B-Tree 10 18761
RocksDB FDW 1 138350
RocksDB FDW 10 122369
RocksDB 1 166333
RocksDB 10 141482

[https://postgrespro.ru/list/thread-id/2503727] ΠΏΡ€ΡƒΡ„ ΠΎΡ‚ нСзависимого Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, поэтому этот источник, Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ большС довСрия, Ρ‡Π΅ΠΌ Ρ€Π΅ΠΊΠ»Π°ΠΌΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π² 10 Ρ€Π°Π·.

БистСма управлСния Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Postgres Π² 4–15 Ρ€Π°Π· быстрСС MongoDB ΠΏΡ€ΠΈ тСстировании ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ OnGres – ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉΡΡ Π½Π° прСдоставлСнии ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния ΠΈ услуг для Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ спонсируСмой EnterpriseDB.
Π‘ ΠΎΠ΄Π½ΠΎΠΉ стороны, Postgres ΡƒΠΌΠ΅Π΅Ρ‚ Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ записи Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π±Π΅Π· индСксов практичСски с Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ записи Π½Π° диск (сотни ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚ Π² сСкунду). Однако Ссли Ρ‚Π°Π±Π»ΠΈΡ†Π° содСрТит индСксы, Π° вставлСнныС ΠΊΠ»ΡŽΡ‡ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ случайныС значСния, Ρ‚ΠΎΠ³Π΄Π° ΠΌΡ‹ наблюдаСм Ρ€Π΅Π·ΠΊΠΎΠ΅ сниТСниС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

Π’ ΠΈΡ‚ΠΎΠ³Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π΄ΠΈΠ»Π΅ΠΌΠΌΡƒ: ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ быстро ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π±Π΅Π· индСксов, Π½ΠΎ для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ быстро Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π½Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ индСксы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°ΠΌΠ΅Π΄Π»ΡΡŽΡ‚ запись Π΄Π°Π½Π½Ρ‹Ρ….

PostgreSQL прСдставляСт классичСский ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΡŽ структурированных, Π΄Π°Π½Π½Ρ‹Ρ… Π² Π²ΠΈΠ΄Π΅ Ρ‚Π°Π±Π»ΠΈΡ†. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, MongoDB Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° пСрСосмыслСния ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΊ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ…. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, эта Π‘Π£Π‘Π” Π½Π΅ Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΠΉ свободы дСйствий, Π½ΠΎ прСдоставляСт Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ инструмСнт, ΠΏΠΎΠ²Ρ‹ΡˆΠ°ΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… – ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ.

ВСрнСмся ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ с ΠΌΠ°Π³Π°Π·ΠΈΠ½ΠΎΠΌ. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…Ρ€Π°Π½ΠΈΡ‚Π΅ Ρ‚ΠΎΠ²Π°Ρ€Ρ‹ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. Π’ этой ситуации ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ Π½Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‚ вас ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΎΠ±Ρ…ΠΎΠ΄Π° индСкса Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² (Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² Π² понятиях рСляционной Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…). Π”Π°ΠΆΠ΅ Ссли ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ постранично, врСмя Π²Ρ‹Π΄Π°Ρ‡ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ сущСствСнно ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ. Π‘ этой Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Π³Ρ€Π°ΠΌΠΎΡ‚Π½ΠΎΠ΅ использованиС MongoDB ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ осознанным шагом Π² сторону ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ

ОсновноС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ систСм ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Π½Π°Π»ΠΈΡ‡ΠΈΠΈ пСрсистСнтности хранСния Π΄Π°Π½Π½Ρ‹Ρ…. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ для вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΏΠ΅Ρ€ΡΠΈΡΡ‚Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ систСмы ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ½Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ значСния. Π’ любом случаС ΠΎΡ‚ΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ наличия пСрсистСнтности нСцСлСсообразно. И здСсь СдинствСнным Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ использованиС Redis для Ρ†Π΅Π»Π΅ΠΉ ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ.

πŸ“± Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ хостинг для мобильного прилоТСния. Π§Π°ΡΡ‚ΡŒ вторая: Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ систСмы ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ

Redis

Redis ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ сСбя ΠΊΠ°ΠΊ систСма управлСния Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… класса NoSQL, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π°Ρ с ΠΏΠ°Ρ€Π°ΠΌΠΈ ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. К Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ характСристикам ΠΌΠΎΠΆΠ½ΠΎ отнСсти Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Redis Ρ…Ρ€Π°Π½ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти (In Memory), ΠΏΡ€ΠΈ этом обСспСчиваСт постоянноС Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΈ Π½Π° дисковых накопитСлях (ΠΏΠ΅Ρ€ΡΠΈΡΡ‚Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ). Одно ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ Redis ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…: строки, списки, мноТСства, Ρ…Π΅Ρˆ-Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, упорядочСнныС мноТСства. Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΈΠΌ Π²Π°ΠΆΠ½Ρ‹ΠΌ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ΠΌ являСтся рСализация систСмы ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями ΠΏΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈ Β«ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ-подписчик» (PubSub). C Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Ρ‹ смоТСтС ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡˆΠΈΠ½Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… прилоТСния, ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠ°Π½Π°Π»Ρ‹, ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ сообщСния.

Redis часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для хранСния ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² сСтСвых сСссий, Π½ΠΎ это Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Π΅Π³ΠΎ примСнСния. НапримСр, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ Π΄Π°Π½Π½Ρ‹Π΅, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ страницы ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² ΠΈΠ»ΠΈ Ρ‚Π°Π±Π»ΠΈΡ† Π»ΠΈΠ΄Π΅Ρ€ΠΎΠ².

Помимо этого Redis ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ….

Когда Redis ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² качСствС кСша, Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ автоматичСски ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ старыС Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π½ΠΎΠ²Ρ‹Ρ…. Π­Ρ‚ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ извСстно сообщСству Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΊΠ°ΠΊ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ LRU, ΠΈ примСняСтся ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² популярной систСмС memcached. LRU – фактичСски Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² освобоТдСния Π΄Π°Π½Π½Ρ‹Ρ….

Начиная с Redis 4.0 доступСн Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ освобоТдСния Π½Π°ΠΈΠΌΠ΅Π½Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… – LFU. Π­Ρ‚ΠΎΡ‚ Ρ€Π΅ΠΆΠΈΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΡƒΡŽ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ситуациях, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² этом случаС Redis отслСТиваСт частоту доступа. Π”Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ€Π΅Π΄ΠΊΠΎ, ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ высокий шанс ΠΎΡΡ‚Π°Ρ‚ΡŒΡΡ Π² памяти.

Π˜Ρ‚ΠΎΠ³

Π’Ρ‹Π±ΠΎΡ€ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… для вашСго прилоТСния Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ зависит ΠΎΡ‚ спСцифики ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ уровня Π²Π°ΡˆΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Если использованиС PostgreSQL ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ, Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° основС MongoDB ΡƒΠΆΠ΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π·Π½Π°Π½ΠΈΠΉ сравнимых с ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ Intermediate.

Π”Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈ использовании Π΄Π²ΠΈΠΆΠΊΠΎΠ² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰ Π΄Π°Π½Π½Ρ‹Ρ… (встраиваСмых key-value Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰). Π—Π΄Π΅ΡΡŒ стоит ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚Π°ΠΊΠΈΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΊ RocksDB ΠΈ BadgerDB. Однако ΠΎΠ½ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Ρ… ΠΏΠΎΠ·Π½Π°Π½ΠΈΠΉ Π² систСмах управлСния Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, сопоставимых с ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ Senior.

ИспользованиС систСм ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ являСтся стандартом практичСски для любого Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ с ΡΠ΅Ρ‚ΡŒΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ Π²Π΅Π±-сайт ΠΈΠ»ΠΈ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Redis являСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ, благодаря ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ мноТСства Ρ‚ΠΈΠΏΠΎΠ² Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, пСрсистСнтности, возмоТностСй ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π½Π΅ΠΌΠ°Π»ΠΎΠ²Π°ΠΆΠ½ΠΎΠΉ возмоТности создания ΡˆΠΈΠ½Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… для ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями. Π¨ΠΈΠ½Π° Π΄Π°Π½Π½Ρ‹Ρ… Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ практичСски бСсконСчно, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ микросСрвисов. ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² освобоТдСния Π΄Π°Π½Π½Ρ‹Ρ… позволяСт ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ использованиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти.

ЕстСствСнно, Redis Π½Π΅ являСтся СдинствСнным Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ. Для осознания потрСбности Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ собствСнной систСмы ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ, Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ процСсс сСриализации ΠΈ дСсСриализации происходящий ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ запросС ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ, ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ΅ сообщСния ΠΏΠΎ шинС Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ взаимодСйствии с Rest API.

Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Ρ†ΠΈΠΊΠ»Π° ΠΌΡ‹ обсудили тСхнологичСский стСк, Π° Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ рассмотрим языки программирования для создания сСрвСрной части, ΠΈΡ… достоинства ΠΈ нСдостатки.

***
Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ систСмы, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° инфраструктуры, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ соотвСтствуСт трСбованиям вашСго рСсурса: объСм накопитСля, процСссор ΠΈ количСство ядСр, объСм ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти ΠΈ СТСмСсячного Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°, Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования, быстрая тСхничСская ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ°. Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ написана совмСстно с нашим ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€ΠΎΠΌ – ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Selectel.

Selectel ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ сСрвСры, оснащСнныС 4-768 Π“Π‘ ΠžΠ—Π£, 2-72 ядрами ЦП, Π° Ρ‚Π°ΠΊΠΆΠ΅ с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ графичСский ΡƒΡΠΊΠΎΡ€ΠΈΡ‚Π΅Π»ΡŒ ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π² качСствС сСрвСра Π΄Π°ΠΆΠ΅ Raspberry Pi 4 (4/64 Π“Π‘) ΠΈ Mac mini для iOS-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

Π’ΠΠšΠΠΠ‘Π˜Π˜

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ вакансию
Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ C++
Москва, ΠΏΠΎ ΠΈΡ‚ΠΎΠ³Π°ΠΌ собСсСдования

Π›Π£Π§Π¨Π˜Π• БВАВЬИ ПО Π’Π•ΠœΠ•