今天碰到一个大量用户信息存map集合(半个G左右),吃的内存也不是很多,但是发现get获取数据特别的慢,故优化一下。
问题
用户登录信息想放入缓存中,用户的信息是巨大的包括个人权限、菜单权限、组织范围......,同时用户量也是巨大的,那么问题来来了,虽然这种文字信息的数据放入缓存其实也不会占多大内存,只要获取速度够快就行,可是呢当我我把这些数据放入一个Map中的时候,我发现,Map个get并没有那么轻松。于是如何解决这种大量数据放入缓存然后又不影响查询速度
问题解决
1、数组也就是顺序表,当知道索引位置时,获取数据是非常快的,所以在大数据量存储在内存中的情况下是可以用一个数组来存储对象信息的。
2、Map的最大的优点就是get非常快,因为他对每一个key都做了哈希算法,所以在Java大数据量的时候,可以使用Map和数组结合的方式,用Map来存储 对象的key 且 该对象在数组中的索引作为Map的value,通过value和数组的方式就可以获得对应的值。