1、NoSQL数据库概述
NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,泛指非关系型的数据库。
NoSQL 不依赖业务逻辑方式存储,而以简单的key-value模式存储。因此大大的增加了 数据库的扩展能力
特点:不遵循SQL标准,不支持ACID,远超于SQL的性能
适用场景:对数据高并发的读写,海量数据的读写,对数据高可扩展性的
不适用场景:需要事务支持,基于sql的结构化查询存储,处理复杂的关系,即席查询
2、session共享问题如何解决?
- 存在cookie中——不安全,网络负担,效率低
- 存在文件服务器或者数据库——导致大量的io操作,效率低
- session复制——会导致每个服务器之间必须将session广播到集群内的每个节点,数据冗余,节点浪费,存在广播风暴问题
- 存在Redis中——服务器从内存中读取数据,速度快,结构简单
3、Redis是什么?
Redis是一个开源的key-value存储系统
操作原子性,支持的存储类型多:字符串String、链表list、集合set、有序集合zset、哈希类型hash
周期性将更新的数据存储修改追加,实现主从同步(master-slave)
4、Redis的应用场景(配合关系型数据库做高速缓存-高频次,热门访问,降低数据库IO)
- 最新N个数据 è 通过List实现按自然事件排序的数据
- 排行榜,TopN è 利用zset(有序集合)
- 时效性的数据,比如手机验证码è Expire过期
- 计数器,秒杀 è 原子性,自增方法INCR、DECR
- 去除大量数据中的重复数据è 利用set集合
- 构建队列è利用list集合
- 发布订阅消息系统 è pub/sub模式