我正在尝试将来自数据库的ArrayList值存储到Redis客户端中。但是Redis只有键/值方法,而键/值必须是字符串格式。我该如何将键存储为字符串,将值存储为ArrayList呢?
你需要使用Map来存储具有键和值的数据
Map<String, ArrayList<String>> map = new Map<String, ArrayList<String>>();
ArrayList<String> a= new ArrayList<String>();
a.add("Ganesh");
map.put("Name", a);
您可以使用基于Redis的框架Redisson轻松实现此操作。它提供了类似java.util.List
、java.util.Set
、java.util.Map
等封装集合。
以下是List
的示例:
Config config = ...
RedissonClient redisson = Redisson.create(config);
List<String> list = redisson.getList("myList");
list.add("1");
list.add("2");
list.add("3");
list.remove("2");
它支持许多流行的编解码器,如Jackson JSON
、Avro
、Amazon Ion
、Smile
、CBOR
、MsgPack
、Kryo
、FST
、LZ4
、Snappy
和JDK Serialization
在redis-cli中,可以逐个将成员添加到集合中,也可以使用数组的方式进行添加,如下所示:
sadd my_new_set a b c d e f g
public void saveCollection(String key, Collection<String> object) {
try {
ListOperations<String, String> listOps = redisTemplate.opsForList();
listOps.rightPushAll(key, object);
LOGGER.info("Saving collection for key {} in Redis", key);
} catch (RedisException e) {
LOGGER.error("Redis Exception", e);
}
}