2013-05-28 2 views
1

я могу HGET mykey oldfield и хранить value в моем приложении и сделать HSET newfield value, как я могу избежать скопировать мое значение так же, как RENAMENX key newkey при использовании хэша? Спасибо.Как переименовать поле хэша эффективно в Redis

+0

Нельзя переименовать хеши в Редисе. Как сказал @DidierSpezia, самый быстрый/лучший способ сделать это - использовать сценарий Lua. – Eli

ответ

5

Там нет никакой конкретной команды, чтобы сделать это, но вы можете использовать на сторону сервера Lua скрипт для выполнения следующих операций атомарные:

  • hget поля
  • hsetnx значения ключа Ньюфилда
  • ключа, если success, hdel key field

Вы оплатите поездку всего за один раунд, и вы сможете обрабатывать ошибки (когда новое поле уже существует).

+1

Большое спасибо. Кажется, мне нужно обновить мой Redis до 2.6,: P – Zoozy

Смежные вопросы