Redis
 sql >> база данни >  >> NoSQL >> Redis

По-бързият метод за преместване на Redis данни в MySQL

Има ли друг начин за изхвърляне на големи данни от Redis в MySQL?

Redis има възможност (с помощта на bgsave) да генерира дъмп на данните по неблокиращ и последователен начин.

https://github.com/sripathikrishnan/redis-rdb-tools

Можете да използвате добре познатия пакет на Sripathi Krishnan, за да анализирате редис дъмп файл (RDB) в Python и да попълните екземпляра на MySQL офлайн. Или можете да конвертирате сметището на Redis във формат JSON и да пишете скриптове на всеки език, който искате да попълните MySQL.

Това решение е интересно само ако искате да копирате пълните данни на екземпляра Redis в MySQL.

Има ли Redis някаква система за задействане, която мога да използвам, за да избегна crons като система за опашка?

Redis няма концепция за задействане, но нищо не ви пречи да публикувате събития в опашките на Redis всеки път, когато нещо трябва да бъде копирано в MySQL. Например вместо:

# Add an item to a user shopping cart
RPUSH user:<id>:cart <item>

можете да изпълните:

# Add an item to a user shopping cart
MULTI
RPUSH user:<id>:cart <item>
RPUSH cart_to_mysql <id>:<item>
EXEC

Блокът MULTI/EXEC го прави атомен и последователен. След това просто трябва да напишете малък демон, който чака за елементи от опашката cart_to_mysql (използвайки BLPOP команди). За всеки изключен елемент, демонът трябва да извлече съответните данни от Redis и да попълни екземпляра на MySQL.

Redis не успява да съхраняваме данните ни във файл, така че възможно ли е да съхраняваме тези данни директно в базата данни MySQL?

Не съм сигурен, че разбирам въпроса тук. Но ако използвате горното решение, латентността между актуализациите на Redis и актуализациите на MySQL ще бъде доста ограничена. Така че, ако Redis се провали, ще загубите само последните операции (противно на решение, базирано на cron задачи). Разбира се, не е възможно да се постигне 100% последователност при разпространението на данни.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Има ли MGET аналог за Redis хешове?

  2. Как да изтриете ключове, съответстващи на шаблон в Redis

  3. Съхранение на свойствата на обекта в redis

  4. Как да заредим used_memory в Redis?

  5. Пишете на Slave redis db