我正在参加「掘金·启航计划」
👨🎓作者: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键 上。