ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Redis вСрнулся Π½Π° использованиС ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ Redis 8.0

Компания Redis Ltd объявила ΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Начиная с выпуска Redis 8.0 ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° стал доступСн ΠΏΠΎΠ΄ свободной Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ AGPLv3. ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡƒΡŽ Π»ΠΈΡ†Π΅Π½Π·ΠΈΡŽ стал Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ благодаря Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΡŽ Π² компанию Π‘Π°Π»ΡŒΠ²Π°Π΄ΠΎΡ€Π° Π‘Π°Π½Ρ„ΠΈΠ»ΠΈΠΏΠΏΠΎ (Salvatore Sanfilippo), создатСля Π‘Π£Π‘Π” Redis. ПослС своСго ΡƒΡ…ΠΎΠ΄Π° ΠΈΠ· Redis Ltd Π‘Π°Π»ΡŒΠ²Π°Π΄ΠΎΡ€ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π» Π½Π°Π±ΠΎΡ€ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Ρ… Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ (Vector Sets), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π» Π³ΠΎΡ‚ΠΎΠ² ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π² состав Redis, Π½ΠΎ Ρ…ΠΎΡ‚Π΅Π» Ρ‡Ρ‚ΠΎΠ±Ρ‹ созданный ΠΈΠΌ ΠΊΠΎΠ΄ поставлялся ΠΏΠΎΠ΄ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ. Π‘Π°Π»ΡŒΠ²Π°Π΄ΠΎΡ€ смог ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒ ΠΊΠΎΠ»Π»Π΅Π³ Π² цСлСсообразности восстановлСния ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ взаимодСйствия с сообщСством.

Роуэн Π’Ρ€ΠΎΠ»Π»ΠΎΠΏ (Rowan Trollope), Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ Redis Ltd, заявил, Ρ‡Ρ‚ΠΎ ΡΠΎΠ²Π΅Ρ€ΡˆΡ‘Π½Π½Ρ‹ΠΉ Π² ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ Π³ΠΎΠ΄Ρƒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° ΠΏΡ€ΠΎΠΏΡ€ΠΈΠ΅Ρ‚Π°Ρ€Π½Ρ‹Π΅ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ достиг своСй Ρ†Π΅Π»ΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ AWS ΠΈ Google основали Ρ„ΠΎΡ€ΠΊ, Π½Π°Ρ‡Π°Π»ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ участиС Π² совмСстной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈ Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ своими ΠΏΡ€ΠΎΡˆΠ»Ρ‹ΠΌΠΈ Π½Π°Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°ΠΌΠΈ. ΠŸΡ€ΠΈ этом смСна Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΉ Π½Π°Π²Ρ€Π΅Π΄ΠΈΠ»Π° ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡΠΌ с сообщСством, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ компания попытаСтся Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ, Π²Π΅Ρ€Π½ΡƒΠ²ΡˆΠΈΡΡŒ ΠΊ поставкС ΠΊΠΎΠ΄Π° ΠΏΠΎΠ΄ свободной Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ.

ПослС ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° ΠΏΡ€ΠΎΠΏΡ€ΠΈΠ΅Ρ‚Π°Ρ€Π½Ρ‹Π΅ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹ Redis Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΎ Π² Ρ„ΠΎΡ€ΠΊΠ°Ρ… Valkey (Ρ„ΠΎΡ€ΠΊ, Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ ΠΏΡ€ΠΈ участии Amazon, Google, Oracle, Ericsson ΠΈ Snap), Redict (Ρ„ΠΎΡ€ΠΊ ΠΎΡ‚ Π°Π²Ρ‚ΠΎΡ€Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Sway ΠΈ языка Hare), Garnet (Π‘Π£Π‘Π” ΠΎΡ‚ Microsoft, совмСстимая с Redis) ΠΈΠ»ΠΈ KeyDB (Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΊ Redis 5 ΠΎΡ‚ Snapchat). Π’ рСпозиториях дистрибутивов Debian 13, Ubuntu 24.10, Fedora 41, RHEL 10, Azure Linux 3, Arch Linux ΠΈ Alpine 3.20 ΠΏΠ°ΠΊΠ΅Ρ‚ Redis Π±Ρ‹Π» Π·Π°ΠΌΠ΅Π½Ρ‘Π½ Π½Π° Ρ„ΠΎΡ€ΠΊ Valkey.

Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Redis поставлялся ΠΏΠΎΠ΄ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ BSD, позволявшСй Π½Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ свои измСнСния, послС Ρ‡Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅ΡˆΡ‘Π» Π½Π° ΠΏΡ€ΠΎΠΏΡ€ΠΈΠ΅Ρ‚Π°Ρ€Π½Ρ‹Π΅ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ RSALv2 (Redis Source Available License v2) ΠΈ SSPLv1 (Server Side Public License v1). Начиная с Redis 8 ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° доступСн ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ AGPLv3, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ являСтся Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ сСтСвых сСрвисов. ΠŸΡ€ΠΈ использовании AGPL-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π² Ρ€Π°Π±ΠΎΡ‚Π΅ сСтСвых сСрвисов, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ обязан ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ исходный ΠΊΠΎΠ΄ всСх внСсённых Π² эти ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π΄Π°ΠΆΠ΅ Ссли Π»Π΅ΠΆΠ°Ρ‰Π΅Π΅ Π² основС сСрвиса ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС Π½Π΅ распространяСтся ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ инфраструктурС для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ сСрвиса. ЛицСнзия AGPLv3 совмСстима с GPLv3, Π½ΠΎ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΠ΅Ρ‚ с Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ GPLv2.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π΄ΠΎ этого Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ SSPL ΠΈ RSAL ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΈ ΠΊ дискриминации ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Ρ‡Ρ‚ΠΎ Π½Π΅ позволяло ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈΡ… ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ свободными. По своим цСлям ΠΎΠ±Π΅ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ походят Π΄Ρ€ΡƒΠ³ Π½Π° Π΄Ρ€ΡƒΠ³Π°, Π° отличия сводятся ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ лицСнзия SSPL основана Π½Π° ΠΊΠΎΠΏΠΈΠ»Π΅Ρ„Ρ‚ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ AGPLv3, Π° лицСнзия RSAL основана Π½Π° пСрмиссивной Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ BSD. ЛицСнзия RSAL позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ, Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² прилоТСния, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ случаСв, ΠΊΠΎΠ³Π΄Π° эти прилоТСния ΡΠ²Π»ΡΡŽΡ‚ΡΡ коммСрчСскими ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для прСдоставлСния управляСмых ΠΏΠ»Π°Ρ‚Π½Ρ‹Ρ… сСрвисов. ЛицСнзия SSPL Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ содСрТит Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ поставки ΠΏΠΎΠ΄ Ρ‚ΠΎΠΉ ΠΆΠ΅ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ΄Π° самого прилоТСния, Π½ΠΎ ΠΈ исходных тСкстов всСх ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², Π²ΠΎΠ²Π»Π΅Ρ‡Ρ‘Π½Π½Ρ‹Ρ… Π² прСдоставлСниС ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠ³ΠΎ сСрвиса.

ΠžΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ с объявлСниСм ΠΎ смСнС Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ прСдставлСн Ρ€Π΅Π»ΠΈΠ· Redis 8.0. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, нСсмотря Π½Π° объявлСниС ΠΎ доступности Ρ€Π΅Π»ΠΈΠ·Π°, Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΠΎΠΊΠ° Ρ€Π°Π·ΠΌΠ΅Ρ‰Ρ‘Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ Π² Ρ€Π΅Π»ΠΈΠ·Ρ‹, Π° ссылка для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Redis 8.0 Π½Π° сайтС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π²Π΅Π΄Ρ‘Ρ‚ Π½Π° страницу с ΠΎΠ±Ρ‰ΠΈΠΌ описаниСм процСсса установки. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠΈ ΠΊ Ρ€Π΅Π»ΠΈΠ·Ρƒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ° ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ выпуск 8.0-RC1.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ измСнСния Π² Redis 8.0:

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ‚ΠΈΠΏ для хранСния Π½Π°Π±ΠΎΡ€ΠΎΠ² Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, вострСбованных Π² систСмах машинного обучСния ΠΈ сСмантичСского поиска. Π’Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Π΅ Π½Π°Π±ΠΎΡ€Ρ‹ (vector set) Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‚ Ρ€Π°Π½Π΅Π΅ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ упорядочСнных списков (sorted set) Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ хранСния ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ². Для манипуляции с Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ 11 Π½ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ VADD, VREM ΠΈ VSIM.
  • Π’ основной состав Redis пСрСнСсСны ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Redis Query Engine, JSON, Time Series ΠΈ Probabilistic Data Types, Ρ€Π°Π½Π΅Π΅ ΠΏΠΎΡΡ‚Π°Π²Π»ΡΠ²ΡˆΠΈΠ΅ΡΡ Π² Ρ„ΠΎΡ€ΠΌΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ Redis Stack.
  • Π˜Π½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° структуры Π΄Π°Π½Π½Ρ‹Ρ… JSON, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΉ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSON Π² привязкС ΠΊ ΠΊΠ»ΡŽΡ‡Π°ΠΌ Π² Redis. Для Π²Ρ‹Π±ΠΎΡ€ΠΎΡ‡Π½ΠΎΠ³ΠΎ извлСчСния JSON-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈ доступа ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ элСмСнтам ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒΡΡ язык запросов JSONPath. ΠŸΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΠ΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎΠ³ΠΎ обновлСния, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ поля JSON-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π±Π΅Π· Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ всСго Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° структур Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„ΠΎΡ€ΠΌΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ряда (запись ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ врСмя ΠΈ Π½Π°Π±ΠΎΡ€ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… этому Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· пСриодичСский опрос состояния Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈΠ»ΠΈ сбор ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ). Для сниТСния потрСблСния памяти задСйствованы Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ сТатия ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ прСдоставлСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ опрСдСлСния ΠΏΡ€Π°Π²ΠΈΠ» прорСТивания Π°Ρ€Ρ…ΠΈΠ²Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… (downsampling).
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ вСроятностныС структуры Π΄Π°Π½Π½Ρ‹Ρ…: Bloom filter, Cuckoo filter, Count-min sketch, Top-k ΠΈ t-digest, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ сущСствСнно ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΏΡ€ΠΈ нСобходимости хранСния ΠΎΡ‡Π΅Π½ΡŒ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΠ±ΡŠΡ‘ΠΌΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… Π·Π° счёт ΠΏΠΎΡ‚Π΅Ρ€ΠΈ точности ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Β«Bloom filterΒ» ΠΈ Β«Cuckoo filterΒ» ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Π²ΠΎ мноТСство, допуская Π»ΠΎΠΆΠ½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ элСмСнта, Π½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ пропуск ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ элСмСнта. Β«Count-min sketchΒ» ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ число ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠΉ значСния Π²ΠΎ мноТСствС. Β«Top-kΒ» позволяСт Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ΡΡ значСния. Β«T-digestΒ» Π΄Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, большС ΠΈΠ»ΠΈ мСньшС Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ.
  • Π’ состав Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½ Π΄Π²ΠΈΠΆΠΎΠΊ Β«Redis Query EngineΒ» с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ поиска ΠΈ возмоТностями для формирования Π²Ρ‹Π±ΠΎΡ€ΠΎΠΊ ΠΏΠΎ содСрТимому, Π° Π½Π΅ ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Π°ΠΌ. Redis Query Engine позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ индСксы для Π΄Π°Π½Π½Ρ‹Ρ…, Ρ€Π°Π·ΠΌΠ΅Ρ‰Ρ‘Π½Π½Ρ‹Ρ… Π² Ρ…ΡΡˆΠ°Ρ… ΠΈ JSON-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ….
  • Π Π°ΡΡˆΠΈΡ€Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ACL (Access Control Lists), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ доступом ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Π½Π° основС ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΠΈ Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‰Π°Ρ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ€Π°Π·Π½Ρ‹Ρ… Π½Π°Π±ΠΎΡ€ΠΎΠ² ΠΏΡ€Π°Π²ΠΈΠ» доступа ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ привязки Π½Π°Π±ΠΎΡ€ΠΎΠ² ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ. НапримСр, ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ACL ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΊ Redis, ΠΊ ΠΊΠ°ΠΊΠΈΠΌ ΠΊΠ»ΡŽΡ‡Π°ΠΌ ΠΈΠΌΠ΅Π΅Ρ‚ доступ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ. Π’ Redis 8 Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ ACL для Π½ΠΎΠ²Ρ‹Ρ… структур Π΄Π°Π½Π½Ρ‹Ρ….
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ…ΡΡˆΠ°ΠΌΠΈ:
    • HGETDEL β€” Π²Ρ‹Π΄Π°Ρ‚ΡŒ ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ поля Ρ…ΡΡˆΠ° ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ ΠΊΠ»ΡŽΡ‡Ρƒ.
    • HGETEX β€” Π²Ρ‹Π΄Π°Ρ‚ΡŒ поля Ρ…ΡΡˆΠ° ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ ΠΊΠ»ΡŽΡ‡Ρƒ ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ для Π½ΠΈΡ… врСмя ΠΆΠΈΠ·Π½ΠΈ.
    • HSETEX β€” Π²Ρ‹ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ поля Ρ…ΡΡˆΠ° ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ ΠΊΠ»ΡŽΡ‡Ρƒ ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ для Π½ΠΈΡ… врСмя ΠΆΠΈΠ·Π½ΠΈ.
  • ВнСсСно Π±ΠΎΠ»Π΅Π΅ 30 ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, приводящих Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… тСстах ΠΊ ΡƒΡΠΊΠΎΡ€Π΅Π½ΠΈΡŽ выполнСния ΠΊΠΎΠΌΠ°Π½Π΄ Π½Π° 87%, ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡŽ пропускной способности Π½Π° 112%, ΡƒΡΠΊΠΎΡ€Π΅Π½ΠΈΡŽ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π½Π° 18% ΠΈ ΡƒΡΠΊΠΎΡ€Π΅Π½ΠΈΡŽ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ Π² Redis Query Engine Π΄ΠΎ 16 Ρ€Π°Π· (Π·Π° счёт Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ). ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ Π½Π°Π±ΠΎΡ€Π° ΠΈΠ· 149 тСстов 90 ΠΊΠΎΠΌΠ°Π½Π΄ стали Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ быстрСС. Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ возросла пропускная ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ, благодаря ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρƒ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² для Ρ€Π°Π·Π±ΠΎΡ€ΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ запросов ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ², чтСния ΠΈ записи Π² сСтСвыС сокСты. ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° новая рСализация ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° (io-threads).
  • ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΉ, Π½Π° 35% мСньшС ΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡŽΡ‰ΠΈΠΉ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ Π½Π° 18% Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ быстрСС. Для ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ задСйствованы Π΄Π²Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠ° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ β€” ΠΎΠ΄ΠΈΠ½ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π° основной ΡƒΠ·Π΅Π», Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π° ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Π΅ ΡƒΠ·Π»Ρ‹.

Для управлСния Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² Π‘Π£Π‘Π” Redis ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΊΠ°ΠΊ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚/Π΄Π΅ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚, стандартныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ списками ΠΈ мноТСствами (объСдинСниС, пСрСсСчСниС), ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ, мноТСствСнныС Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ сортировки. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ Π΄Π²Π° Ρ€Π΅ΠΆΠΈΠΌΠ° хранСния: пСриодичСская синхронизация Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° диск ΠΈ Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π° дискС Π»ΠΎΠ³Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ случаС гарантируСтся полная ΡΠΎΡ…Ρ€Π°Π½Π½ΠΎΡΡ‚ΡŒ всСх ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π·Π° ΠΎΠ΄ΠΈΠ½ шаг Π³Ρ€ΡƒΠΏΠΏΡƒ ΠΊΠΎΠΌΠ°Π½Π΄, гарантируя Π½Π΅ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ (ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… запросов Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΊΠ»ΠΈΠ½ΠΈΡ‚ΡŒΡΡ) выполнСния Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° ΠΊΠΎΠΌΠ°Π½Π΄, Π° Π² случаС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ позволяя ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ измСнСния.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Π° организация master-slave Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° нСсколько сСрвСров, осущСствляСмая Π² Π½Π΅Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. ДоступСн Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π΅ΠΆΠΈΠΌ ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями «публикация/подписка», ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ создаётся ΠΊΠ°Π½Π°Π», сообщСния ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ ΠΏΠΎ подпискС. ВсС Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΏΠΎΠ»Π½ΠΎΠΌ ΠΎΠ±ΡŠΡ‘ΠΌΠ΅ ΠΊΡΡˆΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти. ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ доступны для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° популярных языков, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Perl, Python, PHP, Java, Ruby, Tcl, JavaScript/Node.js, Go ΠΈ C#.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ