Тендис — это высокопроизводительная распределённая система хранения данных, полностью совместимая с протоколом Redis.
Тендис — это высокопроизводительная распределённая система хранения данных, которая полностью совместима с протоколом Redis. Она использует RocksDB в качестве механизма хранения, и все данные сохраняются на дисках через RocksDB. Пользователи могут получить доступ к Тендис с помощью клиента Redis, при этом приложение практически не требует изменений. Кроме того, Тендис поддерживает ёмкость хранения, значительно превышающую объём памяти, что может существенно снизить затраты пользователей на хранение данных.
Подобно кластерам Redis, Тендис использует децентрализованное распределённое решение. Для связи между узлами используется протокол сплетен (gossip), и все узлы кластера могут быть направлены к правильному узлу при обращении пользователя. Узлы кластера поддерживают автоматическое обнаружение других узлов, обнаружение неисправных узлов и обеспечивают работу приложения без значительного влияния при сбое главного узла.
$ git clone https://github.com/Tencent/tendis.git --recursive
$ git submodule update --init --recursive
$ mkdir bulid
$ cd build & cmake ..
$ make -j12
$ ./build/bin/tendisplus tendisplus.conf
Подключение к серверу через redis-cli
$ redis-cli -p 51002
Вы можете внести некоторые изменения в код и убедиться, что следующий тестовый скрипт проходит.
$ sh ./testall.sh
CPU:2.50 GHz,48 core
DISK:NVMe SSD
MEM:192GB
Тендис плюс: workers = 56
./memtier_benchmark -t 20 -c 50 -s 127.0.0.1 -p 51002 --distinct-client-seed --command="set __key__ __data__" --key-prefix="kv_" --key-minimum=1 --key-maximum=500000000 --random-data --data-size=128 --test-time=1800
./memtier_benchmark -t 20 -c 50 -s 127.0.0.1 -p 51002 --distinct-client-seed --command="get __key__" --key-prefix="kv_" --key-minimum=1 --key-maximum=500000000 --test-time=1800
./memtier_benchmark -t 20 -c 50 -s 127.0.0.1 -p 51002 --distinct-client-seed --command="incr __key__" --key-prefix="int_" --key-minimum=1 --key-maximum=1000000 --test-time=1800
./memtier_benchmark -t 20 -c 50 -s 127.0.0.1 -p 51002 --distinct-client-seed --command="lpush __key__"
``` ```
data --key-prefix="list_" --key-minimum=1 --key-maximum=1000000 --random-data --data-size=128 --test-time=1800
./memtier_benchmark -t 20 -c 50 -s 127.0.0.1 -p 51002 --distinct-client-seed --command="sadd __key__ __data__" --key-prefix="set_" --key-minimum=1 --key-maximum=1000000 --random-data --data-size=128 --test-time=1800
./memtier_benchmark -t 20 -c 50 -s 127.0.0.1 -p 51002 --distinct-client-seed --command="zadd __key__ __key__ __data__" --key-prefix="" --key-minimum=1 --key-maximum=1000000 --random-data --data-size=128 --test-time=1800
./memtier_benchmark -t 20 -c 50 -s 127.0.0.1 -p 51002 --distinct-client-seed --command="hset __key__ __data__ __data__" --key-prefix="hash_" --key-minimum=1 --key-maximum=1000000 --random-data --data-size=128 --test-time=1800
Изображение: qps.png
латентность:
SET 1,6 мс 99%
SET 2,2 мс 99,9%
SET 6,9 мс 99,99%
SET 9,4 мс 100,00%
Tendisplus: workers = 56
./memtier_benchmark -t 20 -c 50 -s 127.0.0.1 -p 51002 --distinct-client-seed --command="set __key__ __data__" --key-prefix="kv_" --command-key-pattern=R --random-data --data-size=128 --test-time=1800
./memtier_benchmark -t 20 -c 50 -s 127.0.0.1 -p 51002 --distinct-client-seed --command="get __key__" --key-prefix="kv_" --command-key-pattern=R --test-time=1800
Изображение: qps_payload.png
Мы тестируем набор в течение получаса, а затем тестируем получение ключа в течение получаса. Поскольку данных недостаточно, большая часть данных находится в памяти, поэтому QPS для получения ключа при разной полезной нагрузке почти одинакова.
Для получения дополнительной информации о внесении проблем или запросов на вытягивание, ознакомьтесь с CONTRIBUTING.
Ознакомьтесь с support для часто задаваемых вопросов или присоединяйтесь к нашим дискуссионным группам.
Tendis лицензирован под GNU General Public License Version 3.0. Информацию об авторских правах и лицензии можно найти в файле LICENSE.txt.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )