使用synchronized同步锁
假如上万或数十万个请求 同时 请求一个接口,接口中从redis中查询相应信息。如果redis查询结果为空,就回去查数据库,应为是在高并发情况下,所以会多次查数据库,有可能是成千上万次。
错误示例:
这会使数据库的一压力会非常大。这时我们就用synchronize同步锁来解决。
一万个请求同时进来,只有一个请求拿到锁,只有这个请求释放锁之后其他请求才能进来。一个请求进来之后,会去查一次数据库并吧查询结果存入redis中。然后释放锁,然后下一个请求就会进来,这时就会查到redis中有数据,就不会再去查数据库了。等下一个高并发请求过来之后就会直接从redis中查。这样就查了一次数据库,很好的解决了数据库穿透问题。