Redis在Java web中的应用
一般而言Redis在Javaweb应用中存在两个主要的场景,一个是缓存常用的数据,另一个是在需要高速读/写的场合使用它快速读/写,比如一些需要进行商品抢购和抢红包的场合. 一,缓存 在对数据库的读/写操作中,现实的情况是读操作的次数远超写操作, 一般是1 : 9 到3 : 7 的比例,所以需要读的可能性是比写的可能性多得多。当发送S QL 去数据库进行读取时,数据库就会去磁盘把对应的数据索引回来, 而索引磁盘是一个相对缓慢的过程。如果把数据直接放在运行在内存中的Redis 服务器上,那么不需要去读/写磁盘了,而是直接读取内存,显然速度会快得多,并且会极大减轻数据库的压力。 而使用内存进行存储数据开销也是比较大的,因为磁盘可以是TGB 级别,而且十分廉价,内存一般是几百个GB 就相当了不起了,所以内存虽然高效但空间有限,价格也比磁盘高许多,因此使用内存代价较高,并不是想存什么就存什么,因此我们应该考虑有条件的存储数据。一般而言,存储一些常用的数据,比如用户登录的信息: 一些主要的业务信息,比如银行会存储一些客户基础信息、银行卡信息、最近交易信息等。一般而言在使用 Red is 存储的时候,需要从3 个方面进行考虑。 ·业务数据常用吗?命中率如何?如果命中率很低,就没有必要写入缓存。 · 该业务数据是读操作多,还是写操作多,如果写操作多,频繁需要写入数据库,也没有必要使用缓存。