一、为什么需要NoSQL
- High performance 高并发读写
- Huge Storage 海量数据的高效率存储和访问
- High Scalability && High Availability 高可拓展性和高可用性
二、NoSQL数据库的四大分类
- 键值(Key-Value)存储
- 列存储
- 文档数据库
- 图形数据库
三、四类NoSQL数据库比较
键值(Key-Value)存储
相关产品:Redis、Voldemort、Tokyo Cabinet
典型应用:内容缓存、主要用于处理大量数据的高访问负载
列存储
相关产品:Cassandra、HBase、Riak
典型应用:分布式的文件系统
文档数据库
相关产品:CouchDB、MongoDB
典型应用:Web应用
图形数据库
相关产品:Neo4J、Infinite Graph
典型应用:社交网站、推荐系统等、专注于构建关系图谱
四、NoSQL的特点
- 易扩展
- 大数据量、高性能
- 灵活的数据模型
- 高可用
五、Redis支持的键值数据类型
- 字符串类型
- 散列类型
- 列表类型
- 集合类型
- 有序集合类型
六、Redis的应用场景
- 缓存
- 任务列表
- 应用排行榜
- 网站访问统计
- 数据过期处理
- 分布式集群架构中的session分离
七、Redis的五种数据类型
- 字符串(String)
- 哈希 (hash)
- 字符串列表(list)
- 字符串集合(set)
- 有序字符串集合(sorted set)
八、Redis中Key定义的注意点
- 不要过长
- 不要过短
- 统一命名规范
九、面试题之Redis中Hash键意义何在?
- Hash键可以将信息凝聚在一起,而不是直接分散的存储在整个Redis中,这不仅方便了数据管理,还可以尽量避免一定的误操作
- 避免键名冲突
- 减少内存占用
十、面试题之Redis中不适合使用Hash键的情况?
- 过期功能的使用,过期功能只能使用在key上
- 二进制操作命令:如:SETBIT、GETBIT、BITOP
- 需要考虑数据量分布的问题