Redis学习笔记(一)

传统Web项目:

             可能存在性能问题。数据库持久化数据主要是面向磁盘,磁盘的读/写比较慢,在一般管理系统没有问题。

互联网项目:

              高并发,存在瞬间读/写大量数据的要求,如商品抢购、秒杀,一瞬间成千上万的请求,需在极短的时间内完成成千上万的读、写操作,易造成数据库系统瘫痪,导致服务宕机的严重生产问题。

              应用场景:      一、缓存常用的数据;           二、需要高速读、写的场合

Redis技术:

              基于内存的数据库,并提供一定的持久化功能。

         性能优越:支持每秒十几万次的读、写操作;

                           支持集群、分布式、主从同步等配置,原则上可以无限扩展;

                           支持一定的事务能力,在高并发访问下保证数据安全和一致性特别有用;

        性能优越来至于3个方面:

                      1、基于ANSI C语言编写,接近于汇编语言的机器语言,运行快速;

                      2、基于内存的读、写,自然比数据库磁盘读写快得多

                      3、只有6种数据类型,数据结构简单,规则较少,而数据库则是范式、完整性、规范性考虑的规则多,处理业务会比较复杂。

 

应用:

        一、缓存

对数据库的读、写操作,一般是9:1~7:3,读操作远远多于写操作。

内存相对磁盘要贵的多。存储信息,需从3个方面考虑

  1. 业务数据常用吗?命中率如何?如果命中率很低,就没有必要写入缓存
  2. 该业务数据是读操作多,还是写操作多,如果写操作多,需要频繁写入数据库,也没有必要使用缓存
  3. 业务数据大小如何?如果要存储几百兆字节的文件 ,会给缓存带来很大的压力,有没有必要?

        二、高速读、写场合

商品秒杀、抢红包、淘宝、京东的双十一活动,瞬间成千上万的请求到达服务器。

        考虑异步写入数据库,高速读、写场合中单单使用Redis去应对,把这些需要高速读、写的数据,缓存到Redis,而在满足一定的条件下,触发这些缓存的数据写入数据库中。(秒杀商品为0,抢红包金额为0,触发事件将Redis缓存的数据以批量的形式一次性写入数据库,从而完成持久化工作)

你可能感兴趣的:(Redis)