Π‘ΠΎΡΡΠΎΡΠ»ΡΡ ΡΠ΅Π»ΠΈΠ· Π‘Π£ΠΠ Valkey 8.1, ΠΎΡΠ²Π΅ΡΠ²ΠΈΠ²ΡΠ΅ΠΉΡΡ ΠΎΡ Π‘Π£ΠΠ Redis ΠΏΠΎΡΠ»Π΅ Π΅Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° Π½Π° ΠΏΡΠΎΠΏΡΠΈΠ΅ΡΠ°ΡΠ½ΡΡ Π»ΠΈΡΠ΅Π½Π·ΠΈΡ. ΠΡΠΎΠ΅ΠΊΡ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ Π½Π° Π½Π΅ΠΉΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ»ΠΎΡΠ°Π΄ΠΊΠ΅ ΠΏΠΎΠ΄ ΠΏΠΎΠΊΡΠΎΠ²ΠΈΡΠ΅Π»ΡΡΡΠ²ΠΎΠΌ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Linux Foundation ΠΏΡΠΈ ΡΡΠ°ΡΡΠΈΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈΠ· ΡΠ°ΠΊΠΈΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ, ΠΊΠ°ΠΊ Amazon, Google, Oracle, Ericsson ΠΈ Snap. Π ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Valkey ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΠ»ΡΡ ΠΠ°Π΄Π΅Π»ΠΈΠ½ ΠΠ»ΡΠΎΠ½ (Madelyn Olson), Π±ΡΠ²ΡΠΈΠΉ ΠΌΡΠΉΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Redis. ΠΠΎΠ΄ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘ΠΈ ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ BSD. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΠ°Π±ΠΎΡΠ° Π² Linux, macOS, OpenBSD, NetBSD ΠΈ FreeBSD.
ΠΠ°ΡΠΈΠ½Π°Ρ Ρ Π²ΡΠΏΡΡΠΊΠ° 7.4 Π‘Π£ΠΠ Redis ΠΏΠ΅ΡΠ΅ΡΠ»Π° Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΉ RSALv2 (Redis Source Available License v2) ΠΈ SSPLv1 (Server Side Public License v1), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡ ΠΊ Π΄ΠΈΡΠΊΡΠΈΠΌΠΈΠ½Π°ΡΠΈΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΡΡΠΎ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΠΈΡΠ°ΡΡ ΠΈΡ ΠΎΡΠΊΡΡΡΡΠΌΠΈ ΠΈΠ»ΠΈ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠΌΠΈ. ΠΠΎ ΡΠ²ΠΎΠΈΠΌ ΡΠ΅Π»ΡΠΌ ΠΎΠ±Π΅ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΈ ΠΏΠΎΡ ΠΎΠ΄ΡΡ Π΄ΡΡΠ³ Π½Π° Π΄ΡΡΠ³Π°, Π° ΠΎΡΠ»ΠΈΡΠΈΡ ΡΠ²ΠΎΠ΄ΡΡΡΡ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ Π»ΠΈΡΠ΅Π½Π·ΠΈΡ SSPL ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° ΠΊΠΎΠΏΠΈΠ»Π΅ΡΡ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΈ AGPLv3, Π° Π»ΠΈΡΠ΅Π½Π·ΠΈΡ RSAL ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° ΠΏΠ΅ΡΠΌΠΈΡΡΠΈΠ²Π½ΠΎΠΉ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΈ BSD. ΠΠΈΡΠ΅Π½Π·ΠΈΡ RSAL ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ, ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΡΡ ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅Π², ΠΊΠΎΠ³Π΄Π° ΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ²Π»ΡΡΡΡΡ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ ΠΏΠ»Π°ΡΠ½ΡΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ². ΠΠΈΡΠ΅Π½Π·ΠΈΡ SSPL Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ ΠΏΠΎΠ΄ ΡΠΎΠΉ ΠΆΠ΅ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ΄Π° ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½ΠΎ ΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ΅ΠΊΡΡΠΎΠ² Π²ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², Π²ΠΎΠ²Π»Π΅ΡΡΠ½Π½ΡΡ Π² ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±Π»Π°ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ°.
Π‘Π£ΠΠ Valkey ΠΈ Redis ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ ΠΊΠ»ΡΡ/Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠΎΡΠΌΠ°ΡΠΎΠ² Π΄Π°Π½Π½ΡΡ , ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΡΠΏΠΈΡΠΊΠΈ, Ρ ΡΡΠΈ ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ° ΡΠΊΡΠΈΠΏΡΠΎΠ²-ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π½Π° ΡΠ·ΡΠΊΠ΅ Lua. ΠΠ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ Ρ Π²Π΅ΡΡΠΈΠ΅ΠΉ Π½Π° Π΄ΠΈΡΠΊΠ΅ ΠΈΠ»ΠΈ ΠΎΡΡΠ°ΠΆΠ°Π΅ΡΡΡ Π² Π»ΠΎΠ³Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π° Π΄ΠΈΡΠΊΠ΅, ΡΡΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ ΡΠΎΡ ΡΠ°Π½Π½ΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ Π² ΡΠ»ΡΡΠ°Π΅ Π°Π²Π°ΡΠΈΠΉΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΡΠ΅ΠΆΠΈΠΌ Β«ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ/ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠ°Β», ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ°/Π΄Π΅ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ°, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π°Π΄ ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°ΠΌΠΈ (ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅, ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠ΅), ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ΅ΠΉ, master-slave ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ, ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π²ΡΠ±ΠΎΡΠΊΠΈ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ.
Π Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ:
- ΠΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Ρ ΡΡ-ΡΠ°Π±Π»ΠΈΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ ΠΊΠ°ΠΊ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π΄Π°Π½Π½ΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ ΠΊΠ»ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠ°ΠΊ ΠΈ ΠΏΡΠΈ Ρ ΡΠ°Π½Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½ΡΡ Ρ ΡΠΈΠΏΠ°ΠΌΠΈ Β«HashΒ», Β«SetΒ» ΠΈ Β«Sorted SetΒ». ΠΠΎΠ²ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΈΡΠ»Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ°ΡΡ ΠΊΠ»ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π±Π΅Π· TTL (ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΆΠΈΠ·Π½ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°) ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ΡΠ½ΠΈΠΆΠ΅Π½ΠΎ Π½Π° 20 Π±Π°ΠΉΡ, Π° Ρ TTL β Π½Π° 30 Π±Π°ΠΉΡ. ΠΡΠΎΠΏΡΡΠΊΠ½Π°Ρ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΡΠ²Π΅Π»ΠΈΡΠΈΠ»Π°ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π½Π° 10% ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Π½Π΅ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π°.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΏΡΠ΅ΠΆΠ΄Π°ΡΡΠ΅ΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ (prefetching) ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° ΠΊΠ»ΡΡΠ΅ΠΉ, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ KEYS ΠΈΠ»ΠΈ ΠΏΡΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠ΅ Π²ΡΠ΅Ρ ΠΊΠ»ΡΡΠ΅ΠΉ Π½Π° Π½ΠΎΠ²ΡΠΉ ΡΠ·Π΅Π» Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅ ΠΏΡΠΈ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΄Π°Π»ΠΎΡΡ ΡΡΠΊΠΎΡΠΈΡΡ ΠΏΠ΅ΡΠ΅Π±ΠΎΡ ΠΊΠ»ΡΡΠ΅ΠΉ Π² 3.5 ΡΠ°Π·Π°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π΅ ΠΊ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΊΠ»ΡΡΠ°, ΠΎΠ½ ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π·Π°Π³ΡΡΠΆΠ΅Π½ Π² ΠΊΡΡ CPU.
- ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π°. ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π° ΠΏΡΠΈ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΠΈ TLS-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ, ΡΡΠΎ Π² ΡΡΠΈ ΡΠ°Π·Π° ΠΏΠΎΠ²ΡΡΠΈΠ»ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΠΈΡΠΌΠ° Π½ΠΎΠ²ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ. Π ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠ½Π΅ΡΠ΅Π½Ρ Π²ΡΠ·ΠΎΠ²Ρ ΡΡΠ½ΠΊΡΠΈΠΉ SSL_pending() ΠΈ ERR_clear_error(), ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π»ΠΎ ΠΊ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ SET Π½Π° 10%, Π° GET β Π½Π° 22%.
- ΠΠΎΠ²ΡΡΠ΅Π½Π° ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈΠ·Π»ΠΈΡΠ½ΠΈΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΡ ΡΡΠΌΠΌ ΠΏΡΠΈ Π±Π΅Π·Π΄ΠΈΡΠΊΠΎΠ²ΠΎΠΉ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ Π½Π° 18% ΡΡΠΊΠΎΡΠΈΠ»ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΠΉ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΈ Π²ΠΊΠ»ΡΡΡΠ½Π½ΠΎΠΌ TLS. ΠΠ°ΠΊΠ»Π°Π΄Π½ΡΠ΅ ΡΠ°ΡΡ ΠΎΠ΄Ρ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ copy-on-write ΡΠΎΠΊΡΠ°ΡΠ΅Π½Ρ Π½Π° 47%.
- ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠΏΠΈΡΠΊΠΎΠ² (ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ Β«sorted setΒ»), Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ZRANK Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ ΡΡΠ°Π»ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½Π° 45% Π±ΡΡΡΡΠ΅Π΅. Π ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ZADD Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½Ρ SIMD-ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ.
- Π‘ΠΎΠΊΡΠ°ΡΠ΅Π½ΠΎ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΈ ΠΏΠΎΠ΄ΡΡΡΡΠ΅ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° hyperloglog (Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π΄Π°Π½Π½ΡΡ ΡΠ΅ΠΏΠ΅ΡΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π»ΠΈΡΡ 12 ΠΠ ΠΏΠ°ΠΌΡΡΠΈ). ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ AVX2 Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°Ρ x86 ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ PFMERGE ΠΈ PFCOUNT Ρ ΡΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ hyperloglog Π²ΠΎΠ·ΡΠΎΡΠ»Π° Π΄ΠΎ 12 ΡΠ°Π·, Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ BITCOUNT Π΄ΠΎ 5 ΡΠ°Π·.
- Π ΡΠΈΡΡΠ΅ΠΌΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ Π΄Π΅ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π²Π½Π΅ΡΠ΅Π½Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°ΡΡΠΈΠ΅ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π΅ΡΠΆΠ΅ΠΊ, Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ 1 ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄Ρ. ΠΡΠ΅ΠΌΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° Π΄Π΅ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΎ Π΄ΠΎ 500 ΠΌΠΈΠΊΡΠΎΡΠ΅ΠΊΡΠ½Π΄. ΠΠΎΠ±Π°Π²Π»Π΅Π½ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ (anti-starvation), ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°ΡΡΠΈΠΉ Π·Π°Π΄Π΅ΡΠΆΠΊΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΡΠΈΠΊΠ» Π΄Π΅ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΠΈΠ·-Π·Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π½ΠΎΠ²ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π»ΠΎΠ³ΠΎΠ² ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π² Π»ΠΎΠ³Π°Ρ . ΠΠΎΠ±Π°Π²Π»Π΅Π½ ΡΠ΅ΠΆΠΈΠΌ COMMANDLOG Π΄Π»Ρ ΠΎΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² Π»ΠΎΠ³Π΅ Π±ΠΎΠ»ΡΡΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈ ΠΎΡΠ²Π΅ΡΠΎΠ² (ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ²).
- Π ΠΊΠΎΠΌΠ°Π½Π΄Ρ Β«LATENCY LATESTΒ», ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π° Π·Π°Π΄Π΅ΡΠΆΠ΅ΠΊ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΡΠΎ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡΠΌΠΈ ΠΎ ΡΠΈΡΠ»Π΅ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π·Π°Π΄Π΅ΡΠΆΠ΅ΠΊ ΠΈ Π²ΡΠΏΠ»Π΅ΡΠΊΠ°Ρ Π·Π°Π΄Π΅ΡΠΆΠ΅ΠΊ.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Β«SET IFEQΒ», Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΉ Π΅ΡΠ»ΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠ»ΡΡΠ°.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΡΡ ΡΠΊΡΠΈΠΏΡΠΎΠ²ΡΡ Π΄Π²ΠΈΠΆΠΊΠΎΠ² Π² Π²ΠΈΠ΄Π΅ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΡΠ·ΡΠΊΠΎΠ², ΠΎΡΠ»ΠΈΡΠ½ΡΡ ΠΎΡ Lua.
- ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ Π½ΠΎΠ²ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ:
- Search Module β Π΄Π²ΠΈΠΆΠΎΠΊ Π΄Π»Ρ Π²Π΅ΠΊΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠΎΡ ΠΎΠΆΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π΄Π»Ρ Π·Π°Π΄Π°Ρ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ, Π² ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ Π½ΠΈΠ·ΠΊΠΈΠ΅ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ ΠΈ Π²ΡΡΠΎΠΊΠ°Ρ ΠΏΡΠΎΠΏΡΡΠΊΠ½Π°Ρ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ. ΠΠΎΠ΄ΡΠ»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Google.
- JSON Module β ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠΈΠΏΠ° Π΄Π°Π½Π½ΡΡ JSON, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΡΠ°ΡΡΡΠΌ JSON-Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ² Π±Π΅Π· ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° ΠΊΠ»ΠΈΠ½ΡΡΠΊΠΎΠΉ ΡΡΠΎΡΠΎΠ½Π΅. ΠΠΎΠ΄ΡΠ»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ AWS.
- Probabilistic Bloom Filter Module β ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠΈΠ»ΡΡΡΠΎΠ² ΠΠ»ΡΠΌΠ°, Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΠ½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π²ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ, Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡΠ΅ΠΉ Π»ΠΎΠΆΠ½ΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΡΡΡΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, Π½ΠΎ ΠΈΡΠΊΠ»ΡΡΠ°ΡΡΠ°Ρ ΠΏΡΠΎΠΏΡΡΠΊ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°. ΠΠΎΠ΄ΡΠ»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ AWS.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru