我就想能不能首先一次访问数据库读取全部数据(也可一部分数据)到List中(或其他),然后再有查询直接操作List,这样直接纯java代码的操作,可以省去访问数据库的步骤,提高速度!不知道这是否合乎web机制的访问和请求,又或者是否早有这样的技术,我还没用到过,请求各位解答!谢谢!
对于频繁访问且更新少的数据,可以通过redis缓存来减少频繁操作数据库。
调用查询接口时,先判断redis是否存在,如果存在直接取redis中的数据,如果不存在,就查询数据库并将数据存到redis中,方便后期查询直接从redis中获取数据。
redis的优势可以看下:
当然有了,对于频繁操作的数据,一般放到缓存里面,就是使用redis数据库,这个是非关系型数据库,数据存放在内存里面,对于庞大的数据,为了提高检索速度和关键词快速查询可以使用Elasticsearch数据库,和redis一样同为非关系型数据库,一般用来检索数据和做站内搜索引擎(关键字标注),就像百度一样
缓存
一般来说,简单的数据读到内存里再在内存里操作的确比较快,但是这需要初始化,目前有像redis之类的数据库专门应付这种场景。
但是,假设你数据很大,一次性全读到内存里,那也得看你内存够不够。
所以,要根据实际场景来使用不同的方案,左右为难的时候,不妨自己把多种方案都测一测,看稳定性、效率、易用性等方面,哪个更符合当前场景
可以使用缓存,把所有数据加载到内存,没有必要。只需要把使用频率高,但是变化频率低的数据加载到缓存(如redis).
java web 开发,可以看看这个
https://github.com/zhikecore/superblog