Как мы можем использовать конвейер redis в django -redis? - PullRequest
0 голосов
/ 28 февраля 2020

Я хочу использовать конвейер Redis (выполнить несколько команд) в django -redis.

Мы можем использовать multi и exe c команду в Redis, но как мы можем в django -redis?

Одно из решений:

У меня есть список ключей ha sh, я хочу получить все хэши, используя кнопку ha sh.

При каждой итерационной команде отправлять на сервер redis для выборки по одному га sh.

for hashkey in feedlist:
    result = con.execute_command('hgetall',hashkey)
    print(result)

Это не очень хорошая идея, вместо этого мы можем использовать redis pipe. Но как мне достичь конвейера Redis в django -redis?

1 Ответ

0 голосов
/ 07 марта 2020

Использование конвейера Redis в django -redis.

 #first create pipline object using con object 
 pipeline = con.pipeline()

Вставка всех команд в конвейер. Получение всех ключей ha sh по одной и вставка их в конвейер.

 if feedlist:
     for post in feedlist:
         pipeline.execute_command('hgetall',post)
         #hgetall redis command to get all items of given hash key

Затем вызовите метод execute() для конвейера. Он вернет результат обратно в переменную результата.

     result = pipeline.execute()

Транзакции Redis

MULTI, EXE C, DISCARD и WATCH являются основой транзакций в Redis. Они позволяют выполнять группу команд за один шаг.

Преимущества

  • За один вызов мы можем получить все записи.
  • Сокращенные сетевые вызовы.

Читайте также

Официальный пользователь Redis транзакций делает c

...