ΠΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΉ ΡΡΠΎΡΠΎΠ½ΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΡ ΠΊ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΊΠ°Π½Π°Π»ΠΎΠ² ΡΠ²ΡΠ·ΠΈ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΠ΅ΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ².
ΠΡΡΠ³ΠΈΠ΅ ΡΡΠ°ΡΡΠΈ ΡΠΈΠΊΠ»Π°:
ΠΠ°Π·Ρ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
ΠΠ°ΡΠ½Π΅ΠΌ ΠΎΠ±Π·ΠΎΡ Ρ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΡΡ Π‘Π£ΠΠ, ΠΏΠ»Π°Π²Π½ΠΎ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ NoSQL ΠΈ Π·Π°Π²Π΅ΡΡΠΈΠΌ ΠΎΠ±Π·ΠΎΡ ΡΠ΅ΡΠ΅Π½ΠΈΡΠΌΠΈ Π΄Π»Ρ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π― Π½Π΅ ΠΏΠΎΠΊΠ»ΠΎΠ½Π½ΠΈΠΊ MySQL ΠΈ Π½ΠΈΡΠ΅Π³ΠΎ Ρ ΠΎΡΠΎΡΠ΅Π³ΠΎ ΠΈΠ»ΠΈ ΠΏΠ»ΠΎΡ ΠΎΠ³ΠΎ Ρ ΠΎΠ± ΡΡΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ Π½Π΅ ΡΠΊΠ°ΠΆΡ. ΠΡΡΡ ΠΏΡΠΈΡΠΈΠ½Ρ ΠΏΠΎ ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Ρ Π΅ΠΉ Π½Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ. ΠΠΎΡΡΠΎΠΌΡ ΡΡΠ°Π·Ρ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ PostgreSQL.
PostgreSQL
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ PostgreSQL ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ Π½Π° ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π·Π°ΠΏΠΈΡΠΈ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΌΠΎΠ² Π΄Π°Π½Π½ΡΡ , ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ. PostgreSQL Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΉ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠΈΠΏΠΎΠ² ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΠΈΠ»ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΡΠ°Π±ΠΎΡΠ΅ΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠ΅ Π·Π°ΠΏΡΠΎΡΠ°.
PostgreSQL ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΠΎΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ², ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Ρ ΡΠ°Π½ΠΈΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΡΡ ΡΠ·ΡΠΊΠΎΠ² PL/PGSQL, Perl, Python ΠΈ Π΄Ρ.. ΠΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, Π²ΠΊΠ»ΡΡΠ°Ρ PostGIS β ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ Π³Π΅ΠΎΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°.
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΡΠΆΠ΅ Π΅ΡΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ , ΡΠΎ PostgreSQL Π±ΡΠ΄Π΅Ρ Π»ΡΡΡΠΈΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ.
MongoDB
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΡΡ Π±Π°Π· Π΄Π°Π½Π½ΡΡ , MongoDB ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° Π½Π°Π±ΠΎΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΠΊΠ»ΡΡ/Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΡΠ΄Π΅Π»ΡΠ½ΡΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ ΡΡΡΠΎΠΊΠΈ Π² ΡΠ°Π±Π»ΠΈΡΠ΅, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠ»ΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ΅Π½ ΠΈΠΌΠ΅Π½ΠΈ ΡΡΠΎΠ»Π±ΡΠ°, Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΡΠΎΠΊΠΈ. ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΡ Π΅ΠΌΠΎΠΉ ΠΈΠ»ΠΈ ΡΡΠΎΠ»Π±ΡΠ°ΠΌΠΈ Π² ΡΠ°Π±Π»ΠΈΡΠ΅. ΠΠ²Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, Π²ΡΠΎΠ΄Π΅ ΠΏΠΎΠ»Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΡΠ°Π·Π½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ MongoDB Π΄ΠΎΠΏΡΡΠΊΠ°Π΅Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡ Π΅ΠΌΡ, ΠΈΡ Π»Π΅Π³ΠΊΠΎ Π²Π½ΠΎΡΠΈΡΡ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π΅Π»ΡΠ²Π°ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΡΡ ΡΡΡΡΠΊΡΡΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² Π»Π΅Π³ΠΊΠΎ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π² ΠΊΠΎΠ΄Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠΏΡΠΎΡΠ°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ, ΡΡΠ΅Π½ΠΈΡ, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ.
PostgreSQL vs 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 ΡΠ°Π·.
Π ΠΈΡΠΎΠ³Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π΄ΠΈΠ»Π΅ΠΌΠΌΡ: ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π±ΡΡΡΡΠΎ ΠΏΠΈΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π±Π΅Π· ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ², Π½ΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Π±ΡΡΡΡΠΎ ΡΠΈΡΠ°ΡΡ Π½Π°ΠΌ Π½ΡΠΆΠ½Ρ ΠΈΠ½Π΄Π΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΠΌΠ΅Π΄Π»ΡΡΡ Π·Π°ΠΏΠΈΡΡ Π΄Π°Π½Π½ΡΡ .
PostgreSQL ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ , Π΄Π°Π½Π½ΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΠ°Π±Π»ΠΈΡ. Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, MongoDB ΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΏΠ΅ΡΠ΅ΠΎΡΠΌΡΡΠ»Π΅Π½ΠΈΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° ΠΊ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ . ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΡΠ° Π‘Π£ΠΠ Π½Π΅ Π΄Π°Π΅Ρ ΠΏΠΎΠ»Π½ΠΎΠΉ ΡΠ²ΠΎΠ±ΠΎΠ΄Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ, Π½ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΏΠΎΠ²ΡΡΠ°ΡΡΠΈΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ β ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ.
ΠΠ΅ΡΠ½Π΅ΠΌΡΡ ΠΊ Π½Π°ΡΠ΅ΠΌΡ ΠΏΡΠΈΠΌΠ΅ΡΡ Ρ ΠΌΠ°Π³Π°Π·ΠΈΠ½ΠΎΠΌ. ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅, ΡΡΠΎ Π²Ρ Ρ ΡΠ°Π½ΠΈΡΠ΅ ΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ. Π ΡΡΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΠ²Π°ΡΠΎΠ² ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ Π½Π΅ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΡ Π²Π°Ρ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΎΠ±Ρ ΠΎΠ΄Π° ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΡΠΎΠ²Π°ΡΠΎΠ² (ΡΠ°Π±Π»ΠΈΡΡ ΡΠΎΠ²Π°ΡΠΎΠ² Π² ΠΏΠΎΠ½ΡΡΠΈΡΡ ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ). ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ ΡΠΎΠ²Π°ΡΠΎΠ² ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΠΏΠΎΡΡΡΠ°Π½ΠΈΡΠ½ΠΎ, Π²ΡΠ΅ΠΌΡ Π²ΡΠ΄Π°ΡΠΈ Π±ΡΠ΄Π΅Ρ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ. Π‘ ΡΡΠΎΠΉ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ Π³ΡΠ°ΠΌΠΎΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ MongoDB ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΈΡΠ°ΡΡ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ ΠΎΡΠΎΠ·Π½Π°Π½Π½ΡΠΌ ΡΠ°Π³ΠΎΠΌ Π² ΡΡΠΎΡΠΎΠ½Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² Π½Π°Π»ΠΈΡΠΈΠΈ ΠΏΠ΅ΡΡΠΈΡΡΠ΅Π½ΡΠ½ΠΎΡΡΠΈ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ . ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΏΠ΅ΡΡΠΈΡΡΠ΅Π½ΡΠ½ΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΌ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ½Π° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. Π Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΠΎΡ Π½Π°Π»ΠΈΡΠΈΡ ΠΏΠ΅ΡΡΠΈΡΡΠ΅Π½ΡΠ½ΠΎΡΡΠΈ Π½Π΅ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎ. Π Π·Π΄Π΅ΡΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Redis Π΄Π»Ρ ΡΠ΅Π»Π΅ΠΉ ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Redis
Redis ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΡΠ΅ΡΠ΅Π²ΡΡ ΡΠ΅ΡΡΠΈΠΉ, Π½ΠΎ ΡΡΠΎ Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅Ρ Π²Π°ΡΠΈΠ°Π½ΡΡ Π΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΎ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠ΅, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ²ΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΉ ΡΠΎΠ²Π°ΡΠΎΠ² ΠΈΠ»ΠΈ ΡΠ°Π±Π»ΠΈΡ Π»ΠΈΠ΄Π΅ΡΠΎΠ².
ΠΠΎΠΌΠΈΠΌΠΎ ΡΡΠΎΠ³ΠΎ Redis ΠΈΠΌΠ΅Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π΄Π°Π½Π½ΡΡ .
ΠΠ°ΡΠΈΠ½Π°Ρ Ρ Redis 4.0 Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π½ΠΎΠ²ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π½Π°ΠΈΠΌΠ΅Π½Π΅Π΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π΄Π°Π½Π½ΡΡ β LFU. ΠΡΠΎΡ ΡΠ΅ΠΆΠΈΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ Π»ΡΡΡΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ , ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Redis ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°ΡΡΠΎΡΡ Π΄ΠΎΡΡΡΠΏΠ°. ΠΠ°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ΅Π΄ΠΊΠΎ, ΡΠ΄Π°Π»ΡΡΡΡΡ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΈΠΌΠ΅ΡΡ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΠΉ ΡΠ°Π½Ρ ΠΎΡΡΠ°ΡΡΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ.
ΠΡΠΎΠ³
ΠΠ°Π»ΡΠ½Π΅ΠΉΡΠ΅Π΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π΄Π²ΠΈΠΆΠΊΠΎΠ² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡ Π΄Π°Π½Π½ΡΡ (Π²ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΡ key-value Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡ). ΠΠ΄Π΅ΡΡ ΡΡΠΎΠΈΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠ°ΠΊΠΈΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΊ RocksDB ΠΈ BadgerDB. ΠΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ΠΈ ΡΡΠ΅Π±ΡΡΡ ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π΅ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΡΡΠ΅Π·Π½ΡΡ ΠΏΠΎΠ·Π½Π°Π½ΠΈΠΉ Π² ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ , ΡΠΎΠΏΠΎΡΡΠ°Π²ΠΈΠΌΡΡ Ρ ΡΡΠΎΠ²Π½Π΅ΠΌ Senior.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡΠ΅Π³ΠΎ Ρ ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π±ΡΠ΄Ρ ΡΠΎ Π²Π΅Π±-ΡΠ°ΠΉΡ ΠΈΠ»ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Redis ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΠΌ Π²ΡΠ±ΠΎΡΠΎΠΌ, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΡΠΈΠΏΠΎΠ² Ρ ΡΠ°Π½ΠΈΠΌΡΡ Π΄Π°Π½Π½ΡΡ , ΠΏΠ΅ΡΡΠΈΡΡΠ΅Π½ΡΠ½ΠΎΡΡΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π½Π΅ΠΌΠ°Π»ΠΎΠ²Π°ΠΆΠ½ΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΈΠ½Ρ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΠΎΠ±ΠΌΠ΅Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ. Π¨ΠΈΠ½Π° Π΄Π°Π½Π½ΡΡ Π²Π½ΡΡΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ². ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, Redis Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ. ΠΠ»Ρ ΠΎΡΠΎΠ·Π½Π°Π½ΠΈΡ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΠΈ Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡΠΈΠΉ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π·Π°ΠΏΡΠΎΡΠ΅ ΠΊ Π΄Π°Π½Π½ΡΠΌ, ΠΎΡΠΏΡΠ°Π²ΠΊΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΈΠ½Π΅ Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΈ Ρ Rest API.
Π ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΡΡΠ°ΡΡΠ΅ ΡΠΈΠΊΠ»Π° ΠΌΡ ΠΎΠ±ΡΡΠ΄ΠΈΠ»ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΡΠ΅ΠΊ, Π° Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΠΈ, ΠΈΡ Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²Π° ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ.
Selectel ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΠ΅ΡΠ²Π΅ΡΡ, ΠΎΡΠ½Π°ΡΠ΅Π½Π½ΡΠ΅ 4-768 ΠΠ ΠΠΠ£, 2-72 ΡΠ΄ΡΠ°ΠΌΠΈ Π¦Π, Π° ΡΠ°ΠΊΠΆΠ΅ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΡΠΊΠΎΡΠΈΡΠ΅Π»Ρ ΠΈ Π²ΡΠ±ΡΠ°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ° Π΄Π°ΠΆΠ΅ Raspberry Pi 4 (4/64 ΠΠ) ΠΈ Mac mini Π΄Π»Ρ iOS-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ².
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ