1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/kevin158-redis_sync

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Описание

В ходе работы было обнаружено, что для Redis нет хорошего инструмента для синхронизации данных между главными узлами, поэтому был написан такой инструмент.

Этот открытый проект предназначен для использования в окружении Nginx+Lua, где синхронизируемые команды Redis записываются в ядерный сообщающийся канал, а затем сервер синхронизации, работающий на том же компьютере, выполняет асинхронную многопоточную запись данных.

Проект состоит из двух частей:

server - сервер синхронизации, который читает команды из ядерного сообщающегося канала и синхронизирует данные на других узлах Redis

lua_ext - расширение Lua, используемое для вызова Lua-скриптов, записывающих команды Redis для синхронизации в ядерный сообщающийся канал

Запуск сервера синхронизации:

redis_sync_server -H /usr/local/syncserver -d

-d указывает на запуск в режиме демона

-H указывает на домашний каталог программы, заданный через CMAKE_INSTALL_PREFIX при компиляции

Пример использования Lua-скрипта:

package.cpath = '/usr/local/lib/lua/5.1/?.so;/usr/local/openresty/lualib/?.so;;'  

local syncr = require("libsyncr") 
local msgid, err = syncr.sync_init()
if msgid < 0 then
    ngx.log(ngx.ERR, "sync_init failed : ", err)
    return
end
local ok, err = syncr.sync_command(msgid, "set bcc 8907")
if not ok then
    ngx.log(ngx.ERR, "sync_command failed : ", err)
    return
end

Конфигурация:

[log]
config_file=${SYNC_SERVER_HOME}/etc/log.conf

[server]
pid_file=${SYNC_SERVER_HOME}/logs/sync.pid
cwd=${SYNC_SERVER_HOME}
```[redis]
sync_nodes_list=10.255.209.66:6379
thread_num=1
timeout_secs=1

Зависимости:

jemalloc - для замены malloc zlog - для вывода логов hiredis - клиент для доступа к Redis

Компиляция и установка

Используйте cmake для компиляции.

Перейдите в каждый подкаталог, создайте каталог build, перейдите в него и выполните cmake && make && make install.

Рекомендуется изменять CMakeLists для настройки индивидуальной компиляции, также можно связаться со мной.

lua_ext по умолчанию устанавливается в /usr/local/openresty/lualib/, что можно изменить.

server по умолчанию устанавливается в /usr/local/, рекомендуется изменить через CMAKE_INSTALL_PREFIX.

Связаться с разработчиком

Дон Хуго
421093703@qq.com
http://my.oschina.net/xuhh

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Программа для мультизаписи на другие узлы Redis может использоваться для синхронизации данных основного узла Redis между несколькими IDC. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Язык

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/kevin158-redis_sync.git
git@api.gitlife.ru:oschina-mirror/kevin158-redis_sync.git
oschina-mirror
kevin158-redis_sync
kevin158-redis_sync
master