2013-04-13 2 views
2

Я использую RedisTemplate от Spring, чтобы взаимодействовать с Redis.Сохранение различных данных с помощью RedisTemplate (Spring)

В настоящее время данные, которые я храню в Redis, используют операции OpsForHash, потому что это наиболее подходит для данных, которые я храню.

Но теперь я хочу, чтобы добавить данные в другой структуре, которая является ключевым -> Список

Должен ли я поэтому, имеют разные случаи RedisTemplate в каждом из моих DAOS (параметризируются при необходимости), но подключение к одному экземпляру Редис? Это верно? Или я должен иметь общий экземпляр RedisTemplate, который я могу использовать для хранения как структурированных данных Hash, так и структурированных данных List? Если это последнее, как я могу это сделать, когда меня ограничивает Параметризация экземпляра? т.е. в настоящее время я

Key (String) -> Карта

А теперь я хочу, чтобы добавить

Key (String) -> Список

Это возможно с помощью одного RedisTemplate?

Спасибо!

ответ

4

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

RedisTemplate<String, String> template; 
// Hash Key/Value types can be anything as long as the proper serializers are set 
HashOperations<String,String,Integer> hashOps = template.opsForHash(); 
hashOps.put("foo", "bar", 3); 
// List value types are taken from RedisTemplate parameterization 
ListOperations<String,String> listOps = template.opsForList(); 
listOps.leftPush("foolist", "bar"); 
+0

ли это на самом деле работает? Если я попытался добавить список в тип строки, он говорит, что типы несовместимы. То же самое со списком хеш или хеш, который нужно перечислить, и т. Д. Это было в redis cli, но я не могу себе представить, что это было весною. – doorfly

0

Первое предоставленное решение не работает для меня. Но я нашел решение и отправил его в качестве решения на другой вопрос

Checkout этот ответ https://stackoverflow.com/a/30484834/4671737

+0

Это не ответ, это скорее комментарий. –

+0

Хорошо, но у меня нет репутации, чтобы добавить комментарий - и 1-й ответ не работает –

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