Redis 开篇 -- 非关系型数据库

👨🎓作者:Java 学术趴
💌公众号:Java 学术趴
🚫特别声明:原创不易,未经授权不得转载或抄袭,如需转载可联系小编授权。
🙏版权声明:文章里的部分文字或者图片来自于互联网以及百度百科,如有侵权请尽快联系小编。微信搜索公众号 Java 学术趴联系小编。
☠️每日毒鸡汤:这个社会是存在不公平的,不要抱怨,因为没有用!人总是在反省中进步的!
Redis
1. Redis 介绍
1.1 NoSQL 数据库要解决问题
- Redis 属于 NoSQL 的一种关系型数据库,NoSQL 数据库的产生是为了解决性能问题的。 
每个用户都访问同一台服务器,给服务器造成了极大的压力。
 
 使用负载均衡的方式解决 CPU 内存的压力
 
 以前使用对数据库进行操作来提高性能(例如:分库分表,读写分离等等)。现在使用 NoSQL 解决大量数据库的 IO 请求
 
 1.2 NoSQL 的介绍
- NoSQL(Not Only SQL) ,意为:“不仅仅是 SQL”,泛指 非关系型数据库。NoSQL 不仅依赖业务逻辑方式存储,而以简单的 key-value 模式存储。因此大大的增加了数据的扩展能力。 
注意:
- NoSQL 不遵循 SQL 标准。 
- NoSQL 不支持 ACID。 
- NoSQL 远超于 SQL 的性能。 
重点:
NoSQL 数据库打破了传统关系型数据库以业务逻辑为依据的存储模式,而针对不同数据结构类型改为性能为最优先的存储方式。
1.3 NoSQL 适合的场景
- 对数据高并发的读写(秒杀)。 
- 海量数据的读写。 
- 对数据高可扩展性。 
1.4 NoSQL 不适合的场景
- 需要事务的支持。 
- 基于 SQL 的结构化查询存储,处理复杂的关系,需要根据条件查询。 
1.5 常见的 NoSQL 数据库
- Memcache 
 
 - Redis 
 
 - MongoDB 
 
 1.6 大数据中的 NoSQL 数据库
- Hbase 
 
 - Cassandra 
 
 1.7 图关系型数据库中的 NoSQL 数据库
 
 - 主要应用:社会关系、公共交通网络,地图以网络拓扑(n*(n-1)/2)。 
 
 2. Redis
2.1 Redis 介绍
- Redis 是一个开源的 key-value 存储系统。 
- 它支持存储的 value 数据的类型较多。 String(字符串)、list(链表)、set(集合)、zset(sorted set -- 有序集合)、hash(哈希) 。 
- 这些数据类型都支持 push/pop 、add/remove 以及 获取交集、并集、差集及更多丰富的操作,而且这些操作都是 原子性 的。 
- 在此基础上,Redis 支持各种不同方法的 排序 。 
- 为了保证效率,数据都是 缓存在内存 中的。 
- Redis 会 周期性 的把更新的 数据写入到磁盘或者把修改操作写入到追加的记录文件。 
- 并且在此基础上是实现了 (master-slave) 同步。 
2.2 Redis 应用场景
2.2.1 配合关系型数据库做高速缓存
- 高频次,热门访问的数据库,降低数据库的 IO 
- 分布式架构,做 session 共享。 
 
 2.2.2 多样的数据结构存储持久化
 
  
 Redis 的模式:单线程多路 IO 复用技术
2.2 Redis 的相关介绍
2.2.1 Redis 默认端口 6379 的来源
- 键盘手机上:Mers 分别在键盘手机的 6379 键 上。 
 
 版权声明: 本文为 InfoQ 作者【Java学术趴】的原创文章。
原文链接:【http://xie.infoq.cn/article/40a866cf3b129f784d6f29768】。文章转载请联系作者。











 
    
评论