ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Redka Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° ΠΈ API Redis ΠΏΠΎΠ²Π΅Ρ€Ρ… SQLite

ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Ρ‹ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ выпуски ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Redka, Π½Π°Ρ†Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π° прСдоставлСниС RESP-ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° ΠΈ API, совмСстимых с Π‘Π£Π‘Π” Redis, Π½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ²Π΅Ρ€Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ SQLite. ЗадСйствованиС SQLite Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ позволяСт ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ языка SQL, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для формирования ΠΎΡ‚Ρ‡Ρ‘Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ использованиС ACID-Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ. Redka ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ Π² Ρ„ΠΎΡ€ΠΌΠ΅ сСрвСра, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅Π³ΠΎ запросы ΠΏΠΎ сСти, ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Π²ΠΈΠ΄Π΅ модуля для языка Go. Код ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° написан Π½Π° языкС Go ΠΈ распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ BSD.

Π’ настоящСС врСмя Π² Redka Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ‚ΠΈΠΏΠΎΠ² для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со строками ΠΈ Ρ…ΡΡˆΠ°ΠΌΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ для манипуляции строковыми Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ, транзакциями ΠΈ Ρ…ΡΡˆΠ°ΠΌΠΈ. НапримСр, доступны ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для установки ΠΈ получСния ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… привязанных ΠΊ ΠΊΠ»ΡŽΡ‡Ρƒ строковых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, задания Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΆΠΈΠ·Π½ΠΈ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ, ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°/Π΄Π΅ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, поиска ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΠΏΠΎ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ, пСрСимСнования ΠΊΠ»ΡŽΡ‡Π΅ΠΉ, выполнСния сСрии ΠΊΠΎΠΌΠ°Π½Π΄ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, Ρ€Π°Π±ΠΎΡ‚Ρ‹ с полями Π² Ρ…ΡΡˆΠ°Ρ….

Π’ блиТайшСС врСмя планируСтся Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ списков, ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ (sets) ΠΈ отсортированных ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ. Π’ ΠΎΡ‚Π΄Π°Π»Ρ‘Π½Π½ΠΎΠΉ пСрспСктивС оТидаСтся рСализация Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° HyperLogLog, возмоТности для манипуляции гСографичСскими ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ для взаимодСйствия с использованиСм ΠΌΠΎΠ΄Π΅Π»ΠΈ publish/subscribe. Пока Π½Π΅ планируСтся Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ скриптов Π½Π° языкС Lua, Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ, ACL, watch/unwatch ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² ΠΎΠ΄Π½ΠΎΠΌ сСрвСрС с нСсколькими Π‘Π”. Π’ΠΎΡ‡Π½ΠΎ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° кластСров (Redis Cluster) ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° (Redis Sentinel).

ВСстированиС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ с использованиСм инструмСнтария ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Redis, ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΎ, Ρ‡Ρ‚ΠΎ Redka Π² 2-6 Ρ€Π°Π· отстаёт ΠΎΡ‚ Redis ΠΈΠ·-Π·Π° отсутствия спСцифичных ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΉ для хранСния Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ΠΊΠ»ΡŽΡ‡/Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π’ частности, Π² созданном тСстовом ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ Redis продСмонстрировал ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π² 133 тысяч ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ SET Π² сСкунду ΠΈ 139 тысяч ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ GET Π² сСкунду, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Redka составила 30 тысяч SET Π² сСкунду ΠΈ 63 тысячи GET Π² сСкунду Π² ситуации, ΠΊΠΎΠ³Π΄Π° Π‘Π” Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π»Π°ΡΡŒ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти. ΠŸΡ€ΠΈ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠΈ Π‘Π” Π½Π° дискС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Redka составила 22 тысячи ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ SET Π² сСкунду ΠΈ 56 тысяч GET Π² сСкунду.

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