由于业务需求, 需要将一个集合放到redis里面, 大部分博客推荐的方法是将List整个对象做序列化。如果是这种操作的话, 其实放到redis里面的还是一整个对象,也不能享受redis提供的对集合的操作。
对redis有了解过的同学应该,在redis里有操作list集合的命令,lpush rpush lrange...等等命令。
而spring提供的 RedisConnection 是对redis连接的封装,也封装了lpush等一些命令。
从而可以通过这个对象对redis操作。
直接上代码
将一个list集合元素push到redis
public long setCollection(byte[] key, Collection> value) {
Object result = redisTemplate.execute((conn) -> {
long size = 0;
for (Object val : value) {
// 迭代list的每一个元素, push到key对应的list
size = conn.rPush(key, SerializeUtil.serialize(val));
}
return size;
} , false);
return (long) result;
}
从redis获取list集合的某一部分数据
public List getList(byte[] key, int page, int size) {
Object result = redisTemplate.execute((conn) ->