网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
文章目录
基于内存的分布式NoSQL数据库Redis
知识点01:课程目标
- 整体目标
- Redis:NoSQL数据库,实时存储
- Kafka:消息队列,实时存储
- Hbase:NoSQL数据库,实时存储
- Redis的基本介绍和使用
- 功能与应用场景
- Redis的使用:基于命令的操作、基于编程的操作【JavaAPI】
- 多练习
- Redis的存储设计:性能、安全
- 思想:大道至简
知识点02:NoSQL与RDBMS
-
目标:了解NoSQL的应用场景与RDBMS的区别
-
路径
- step1:RDBMS的特点
- step2:业务架构中的问题
- step3:NoSQL的特点
-
实施
-
RDBMS的特点:关系型数据库管理系统
- 工具:MySQL、Oracle、SQL Server……
- 应用:业务性数据存储系统:事务和稳定性
- 特点:体现数据之间的关系,支持事务,保证业务完整性和稳定性,小数据量的性能也比较好
- 开发:SQL
-
业务架构中的问题
- 问题:以网站后台存储为例,当并发量很大,所有高并发全部直接请求MySQL,容易导致MySQL奔溃
- 需求:能实现高并发的数据库,接受高并发请求
-
NoSQL的特点:Not Only SQL:非关系型数据库
-
工具:Redis、HBASE、MongoDB……
-
应用:一般用于高并发高性能场景下的数据缓存或者数据库存储
-
特点:读写速度特别快,并发量非常高,相对而言不如RDBMS稳定,对事务性的支持不太友好
-
开发:每种NoSQL都有自己的命令语法
-
解决上面RDBMS的问题:使用高并发缓存实现读写分离
- 读请求:读请求不读取MySQL,读取Redis
- 写请求:写请求直接写入MySQL
-
-
-
小结
- RDBMS和NoSQL的应用特点分别是什么?
- RDBMS
- 场景:业务数据库
- 特点:稳定性高、事务支持比较完善、小数据量性能好
- NoSQL
- 场景:高并发高性能的数据存储
- 特点:稳定性和安全性相对不如RDBMS,支持高并发和高性能
知识点03:Redis的功能与应用场景
-
目标:掌握Redis的功能与应用场景
-
路径
- step1:介绍
- step2:功能特点
- step3:应用场景
-
实施
-
介绍
-
相关网站
-
官方介绍
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。
-
定义:基于内存的分布式的NoSQL数据库
- 所有数据存储在内存中,并且有持久化机制
- 每次redis重启,会从文件中重新加载数据到内存,所有读写都只基于内存
-
-
功能特点
- 功能:提供高性能高并发的数据存储
- 特点
- 基于C语言开发的系统,与硬件的交互性能更好
- 基于内存实现数据读写,读写性能更快
- 分布式的:扩展性和稳定性更好
- KV结构数据库:支持事务、拥有各种丰富的数据结构
- KV结构
- 缺点:两列,不能满足复杂的业务存储
- 优点:Value可以支持多种类型,满足不同需求的存储
- String、List、Set、Hash、Zset:掌握这五种类型的读写命令
- KV结构
-
应用场景
-
缓存:用于实现大数据量高并发的大数据量缓存【临时性存储】
- 网站架构中:接受高并发的缓存读写请求
-
数据库:用于实现高性能的小数据量读写【永久性存储】
- 大数据平台中:高性能:一般用于作为实时计算结果的存储
-
消息中间件:消息队列【MQ】:用于实现消息传递,一般不用Redis
-
-
-
小结
- Redis的功能与应用场景是什么?
- 功能:实现基于高性能和高并发的数据存储【基于内存】
- 应用
- 缓存:高并发来接受高并发的读写,大数据量,临时性存储,允许数据丢失
- 数据库:高性能来接受数据的读写,小数据量,永久性存储,不允许数据丢失
- Redis的功能与应用场景是什么?
知识点04:Redis的Linux版单机部署
-
目标:实现Redis的Linux版单机部署
-
实施
- Windows版本安装及远程工具使用请参考随堂资料《Redis的Windows版安装及远程工具的使用.pdf》
- 上传redis-3.2.8源码
cd /export/software/ rz
- 解压
tar -zxvf redis-3.2.8.tar.gz -C /export/server/
- 安装依赖
yum -y install gcc-c++ tcl
- 如果已经安装过,执行命令结果如下: ![image-20210904103725987](https://img-blog.csdnimg.cn/img_convert/f84b059926e05dd541302d494a4f47a3.png)
- 编译安装
#进入源码目录 cd /export/server/redis-3.2.8/ #编译 make #安装,并指定安装目录 make PREFIX=/export/server/redis-3.2.8-bin install
-
修改配置
- 复制配置文件
cp /export/server/redis-3.2.8/redis.conf /export/server/redis-3.2.8-bin/
- 创建目录
#redis日志目录 mkdir -p /export/server/redis-3.2.8-bin/logs #redis数据目录 mkdir -p /export/server/redis-3.2.8-bin/datas
- 修改配置
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
15025969577)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!