2015-10-03 11 views
1

У меня есть набор redis. Этот набор может хранить максимум 20 членов (добавлено командой SADD). Моя проблема; Мне нужно обновить эти члены, когда это необходимо. Пользователям требуется эта модификация максимум 10 раз для каждого участника. Набор элементов - это json как строка. На мой взгляд, есть только solutoin, и не заставляйте всех членов обновлять и воссоздавать этот набор снова. Но это похоже на идиоток.Эффективный способ redis установить член обновление

Я знаю, что есть ZADD сортированный набор с поддержкой его оценки, кажется, тоже подходит. Мне нужно обновить счет, как данные в json, но я просто задаюсь вопросом. Есть ли способ, который обновляет элементы эффективным способом или обновляет член, не приемлемый на redis way?

Примечание: Хранилище данных Redis используется как узлами, так и java-клиентами.

+0

Рассматривали ли вы нно g MongoDB? – thepirat000

+0

@ thepirat000 уже используется на другом уровне. –

+0

Вариант использования подходит. См. «Операторы обновления поля MongoDB» (http://docs.mongodb.org/manual/reference/operator/update-field/) – thepirat000

ответ

3

Набор элементов сам по себе неизменен - ​​вы можете добавить новых членов или удалить существующие. Вот и все.

Учитывая, что набор представляет собой неупорядоченный набор уникальных элементов, рассмотреть возможные результаты были установлены членами теоретически изменяемыми, когда новое значение элемента:

  1. идентичен старым значение - без изменений установить
  2. уже существует в наборе - эквивалентно удалению этого члена
  3. не является 1 или 2 - эквивалент удаления элемента и добавления нового один
+0

спасибо за ваш ответ, я также подумал о третьем варианте, но, похоже, не подходит для многопоточного приложения. Поэтому я решил создать новый временный набор, чтобы установить связь с существующим набором. Можете ли вы дать конкретный совет. Это хороший способ? Благодарю. –

+0

Нет необходимости - используйте блок MULTI/EXEC или короткий сценарий Lua, чтобы сделать SREM и SADD атомарными и предотвратить любые условия гонки, связанные с потоками. –

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

  • Нет связанных вопросов^_^