RocksRedis — это улучшенная версия Redis-внутренней базы данных памяти, использующая RocksDB в качестве встроенной системы управления базой данных для обеспечения долговременного хранения данных Redis. Высокие показатели производительности Redis уже сделали его основным выбором для управления кэшированием данных. Для Redis существуют два способа долговременного хранения данных: RDB и AOF. Первый представляет собой периодическое кэширование, а второй — запись в журнал. По мере увеличения размера файла снижается производительность чтения и записи Redis, поэтому Redis может использоваться только для управления кэшем определённого объёма данных. RocksDB специально оптимизирован для быстрого и низкого задерживания хранилищ данных (например, флеш-памяти или высокопроизводительных жестких дисков). RocksDB максимально использует скорость чтения и записи флеш-памяти и RAM. RocksDB демонстрирует превосходную производительность при работе с большим количеством данных одновременно, поэтому требуется разделение «горячих» и «холодных» данных в RocksRedis для обеспечения эффективной работы batchwrite. RocksRedis использует Magnet в качестве middleware для соединения и управления магнитным кэшем и постоянным слоем.Данные проходят через кэш Redis и затем через пулы потоков обработки данных Magnet для массового кэширования данных в RocksDB. RocksRedis поддерживает более чем 100 000 ключей, каждый из которых может содержать более одного миллиона записей. Одиночная версия RocksRedis может поддерживать более 10 триллионов записей. Примеры использования: RocksRedis идеально подходит для следующих случаев:
Содержимое директорий
|--libs
|--bin
|--redis.conf
|--runstart.sh
libs
- каталог зависимостей для запуска RocksRedis
bin
- каталог исполняемых программ RocksRedis
redis.conf
- конфигурационный файл
runstart.sh
- скрипт запуска > Описание конфигурационного файла redis.conf
########################### КОНФИГУРАЦИЯ ROCKSREDIS #######################
# Выбор базы данных Redis для использования в качестве канала RocksRedis
# Если Redis является кластером, то значение по умолчанию равно 0
# Если это одиночная установка, вы можете выбрать значения от 0 до 15
```# Если этот параметр закомментирован, база данных rocksredis будет закрыта,
# и rocksredis будет использоваться как кеш-база данных.
rocksredis_db_select 15
# Путь хранения данных rockredis
# По умолчанию путь равен /data
rocksredis_db_dir /home/data
# Размер батча для записи данных, который можно настроить в зависимости от частоты записи.
# Значение по умолчанию равно 2000
rocks_write_batch_size 2000
# Устанавливает размер одного memtable. Как только memtable превышает этот размер,
# он помечается как неизменяемый, а новый создаётся.
# Значение по умолчанию равно 64МБ, 64*1024*1024
write_buffer_size 67108864
# Устанавливает максимальное количество memtable, активных и неизменяемых.
# Если активный memtable заполнен, то общее число memtable больше max_write_buffer_number,
# мы будем приостанавливать последующие записи. Это происходит, когда процесс очистки медленнее, чем скорость записи.
# Значение по умолчанию равно 3
max_write_buffer_number 3
# Количество потоков для параллельной очистки диска.
# Обычно значение 1 достаточно.
# Здесь значение по умолчанию равно 4
max_background_flushes 4
# Максимальное количество потоков для фонового сжатия.
```# Значение по умолчанию равно 1, но чтобы использовать полностью ЦП и хранилище,
# можно увеличить это значение до количества ядер системы.
# Значение по умолчанию здесь равно 8
max_background_compactions 8
# Фоновый поток выполнения для обработки батча данных на диск
# Значение по умолчанию равно 10, которое можно настроить в соответствии с реальными потребностями
batch_write_background_threadpools 10```markdown
# Выбираем один db redis для использования в качестве канала постоянства rocksdb;
# По умолчанию для одиночного экземпляра redis используются db0~db15, по умолчанию используется 15;
# Остальные db могут использоваться для кэширования redis в обычном режиме; если вы не хотите использовать rocksdb для постоянства,
# то можно установить rocksredis_db_select в -1;
rocksredis_db_select 15
# Путь хранения данных rocksredis
rocksredis_db_dir /home/data
# Размер батча для записи данных rocksredis
rocks_write_batch_size 2000
# Размер буфера записи rocksdb
write_buffer_size 67108864
# Максимальное количество буферов записи rocksdb
max_write_buffer_number 3
# Количество фоновых потоков для очистки rocksdb
max_background_flushes 4
# Максимальное количество фоновых потоков для объединения rocksdb
max_background_compactions 8
# Количество фоновых потоков для обработки батча данных rocksdb
batch_write_background_threadpools 10
Запуск
Выполнить скрипт запуска ./runstart.sh
6. 0. 8 — версия Redis
06 — версия RocksRedis
RocksRedis полностью совместим с методами работы Redis и командами, доступными в нем. Поддерживаемые команды:
| ----- | ----------------------------------------------------------------------- |
| 1 | [HDEL ключ поле1 поле2] Удаление одного или нескольких полей хеш-таблицы |
| 2 | HEXISTS ключ поле Проверка наличия поля в хеш-таблице |
| 3 | HGET ключ поле Получение значения указанного поля в хеш-таблице |
| 4 | HGETALL ключ Получение всех полей и значений хеш-таблицы |
| 5 | HKEYS ключ Получение всех полей хеш-таблицы |
| 6 | HLEN ключ Получение количества полей в хеш-таблице |
| 7 | [HMGET ключ поле1 поле2] Получение значений указанных полей |
| 8 | [HMSET ключ поле1 значение1 поле2 значение2] Установка множества пар "поле-значение" в хеш-таблицу |
| 9 | HSET ключ поле значение Установка значения поля в хеш-таблице |
| 10 | HSETNX ключ поле значение Установка значения поля в хеш-таблице при отсутствии этого поля |
| 11 | HVALS ключ Получение всех значений хеш-таблицы |
| 12 | HSCAN ключ курсор [MATCH шаблон] [COUNT количество] Итерация по парам "ключ-значение" хеш-таблицы |
| 13 | DEL команда используется для удаления существующего ключа |
| 14 | STRLEN команда используется для получения длины строки, хранящейся под указанным ключом |
| 15 | SCAN команда используется для итерации по всем ключам базы данных |
| 16 | TYPE команда используется для получения типа значения ключа || 17 | Команда SADD добавляет один или несколько элементов в множество |
| 18 | Команда SCARD возвращает количество элементов в множестве |
| 19 | Команда SISMEMBER проверяет является ли элемент членом множества |
| 20 | Команда SMEMBERS возвращает все элементы множества |
| 21 | Команда SPOP удаляет один или несколько случайных элементов из множества |
| 22 | Команда SSCAN используется для итерации по элементам множества |
| 23 | Команда SREM используется для удаления одного или нескольких членов множества |
| 24 | Команда SET используется для установки значения ключа. Если ключ уже имеет другое значение, SET заменяет старое значение, игнорируя тип данных. |
| 25 | Команда GET используется для получения значения указанного ключа. Если ключ отсутствует, возвращается nil. Если ключ хранит значение, отличное от строки, возвращается ошибка. |> JAVA
Добавление зависимости Redis в pom.xml
redis.clients jedis 2.9.0 ```PYTHON
Установка библиотеки Redis
pip install redis==2.10.6
C/C++
Импорт библиотеки hiredis.a
Тест 1: Хэш-хранение, hsetnx()
Элементы: 10000, Данные: 1 КБ, Тип: String
Начало: Пнд Апр 26 13:36:21 CST 2021
Затраченное время: 28.324 (с)
Элементы: 50000, Данные: 1 КБ, Тип: String
Начало: Пнд Апр 26 13:36:21 CST 2021
Затраченное время: 65.102 (с)
Элементы: 100000, Данные: 1 КБ, Тип: String
Начало: Пнд Апр 26 15:09:03 CST 2021
Затраченное время: 172.914 (с)
```Тест 2: Хэш-хранение, hsetnx()
Элементы: 10000, Данные: 10 КБ, Тип: String Начало: Пнд Апр 26 15:26:14 CST 2021 Затраченное время: 27.288 (с)
### ! [Введите описание изображения](https://images.gitee.com/uploads/images/2021/0506/141400_99e02591_1205442.png "image-20210426152748437.png")
Элементы: 50000, Данные: 10 КБ, Тип: String Начало: Пнд Апр 26 16:19:51 CST 2021 Затраченное время: 137.374 (с)
### ! [Введите описание изображения](https://images.gitee.com/uploads/images/2021/0506/141413_8cb74d01_1205442.png "image-20210426162317243.png")
Элементы: 100000, Данные: 10 КБ, Тип: String Начало: Пнд Апр 26 16:23:47 CST 2021 Затраченное время: 275.583 (с)
### ! [Введите описание изображения](https://images.gitee.com/uploads/images/2021/0506/141426_0d7087a5_1205442.png "image-20210426163543639.png")
#### 2. Тест производительности чтения с использованием хешей, hscan()
Чтение элементов: 10000, Данные: 10 КБ, Тип: String Начало: Пн Апр 26 16:42:41 MSK 2021 Время выполнения: 8.567 (с)
Чтение элементов: 100000, Данные: 10 КБ, Тип: String Начало: Пн Апр 26 16:43:32 MSK 2021 Время выполнения: 85.449 (с)
#### Шесть. Скачивание
**Gitee**
- [сервер CentOS 7 64-бит](https://gitee.com/RocksCloud/rocksredis_centos7_x86_64)
**GitHub**
- [сервер CentOS 7 64-бит](https://github.com/RocksCloud/rocksredis_centos7_x86_64)
Другое
https://gitee.com/rockscloud
https://github.com/rockscloud
##### Семь. Группа для технического общения
Основной этап тестирования RocksRedis завершен. Программа широко используется на платформах Rocksiot IoT Cloud, управлении оборудованием и прогнозируемой поддержке. Приглашаем вас принять участие в техническом сотрудничестве и общении.

Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )