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】。文章转载请联系作者。
评论