什么是redis?
Redis(Remote Dictionary Server 即远程字典服务)是完全免费、开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库。基于内存的可以持久化。最热门的Nosql技术之一
redis能干嘛?
- 内存存储、持久化,内存中是断电即失,所以说持久化很重要
- 效率高、可以用于缓冲
- 发布订阅系统
- 地图信息分析
- 计时器、计数器(浏览量)
- ......
特性
- 多样的数据类型
- 持久化
- 集群
- 事务
- ....
它的优势体现在哪?
性能极高,能读的速度110000次/s 。 写的速度81000次/s。
丰富的数据类型- 支持strings,lists ,hashes, sets,
原子性。所有操作就是原子性,要么成功执行,要么失败完全不执行。
丰富特性:支持 publish/subscribe, 通知,key过期。
Redis在javaweb中的应用
一般,在javaweb中应用redis存在两个场景,一个是缓存常用的数据;另一个是在需要高速读/写的场合使用它快速读/写,比如一些需要进行商品抢购和抢红包的场合。
在使用Redis存储的时候,需要从3个方面进行考虑:
- 业务数据常用吗?命中率如何?如果命中率低,就没有必要写入缓存。
- 该业务数据是读操作多还是写操作多,如果写操作多,频繁需要写入数据库,也没有必要使用缓存。
- 业务数据大小如何?如果要存储几百兆字节的文件,会给缓存带来很大的压力,有没有必要?
考虑这些问题后,如需要缓存,就可以使用了。