redis 课程先导(1)

166 阅读1分钟

1. 思维导图

image.png

2.技术发展史

2.1 技术的分类

1、解决功能性的问题:Java、Jsp、RDBMS、Tomcat、HTML、Linux、JDBC、SVN

2、解决扩展性的问题:Struts、Spring、SpringMVC、Hibernate、Mybatis

3、解决性能的问题:NoSQL、Java线程、Hadoop、Nginx、MQ、ElasticSearch

2.2 web1.0时代

Web1.0的时代,数据访问量很有限,用一夫当关的高性能的单点服务器可以解决大部分问题。 image.png

2.3 web2.0时代

随着Web2.0的时代的到来,用户访问量大幅度提升,同时产生了大量的用户数据。加上后来的智能移动设备的普及,所有的互联网平台都面临了巨大的性能挑战。

image.png

2.3.1 解决服务器cpu和内存压力

image.png

2.3.2 解决数据库IO压力

image.png

3 Redis概述

Ø  Redis是一个开源的key-value存储系统。

Ø  和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。

Ø  这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。

Ø  在此基础上,Redis支持各种不同方式的排序。

Ø  与memcached一样,为了保证效率,数据都是缓存在内存中。

Ø  区别的是Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件。

Ø  并且在此基础上实现了master-slave(主从)同步。

3.1 应用场景

(1)配合关系型数据库做高速缓存

Ø  高频次,热门访问的数据,降低数据库IO

Ø  分布式架构,做session共享

image.png (2) 多样的数据结构存储持久化数据

image.png