Redis可存储操作的第二种数据类型:
List类型:key-value(这里的value是一个数组),与String类似的是这里的value必须经过序列化
与String类型的相似,都由RedisTemplate类中的方法来获取可以操作List类型变量的对象:
public ListOperations<K, V> opsForList() {
if (listOps == null) {
listOps = new DefaultListOperations<K, V>(this);
}
return listOps;
}
返回值是listOps,这个数据类型是:ListOperations<K, V>
private ListOperations<K, V> listOps;
这个listOps类是由DefaultListOperatiods类的构造函数产生的,查看该类的构造方法,发现与String类型的一致,因此,List类型的value(这里是一个数组),String类型的value可以看作是组成List数组的一个单元。
进入ListOperations类,查看操作List类型数据的方法
/**
* Prepend {@code values} to {@code key}.
*
* @param key must not be {@literal null}.
* @param values
* @return
* @see <a href="http://redis.io/commands/lpush">Redis Documentation: LPUSH</a>
*/
Long leftPushAll(K key, V... values);
这个常用的添加方法,可以看出这里的V是一个数组
其余Redis操作List类型数据的方法可以去ListOperations类中查找。
看了Redis对两种数据类型的存取,大家应该意识到这两种数据类型都巧妙的运用了继承和实现来实现代理模式,作为一个将要入行的
菜鸟,我觉得看这些源码并分享出来,对自己还是对大家都是一种提升,加油~