碎碎念:这里本人为了进入大厂而努力,因此今天下午本人花费一下午+一晚上的时间学一学Redis,还在学习的小伙伴看过来,着篇文章,帮你打通任督二脉,这里也会结合当前面试题,并且会有相应的的操作。后面借用了一些大佬的博客,我在后面也会一一列出来,感谢他们的经验分享。
NoSql的作用
为什么学习
讲个小故事:这里的年代并不准确,只是做个类比
- 90年代,最早的年代,人们采用带个服务器,感觉没啥问题,也就不会再去考虑缓存高并发的问题,就像现在的我们能在自己的电脑跑通了就觉得万事大吉了。
- 00年代,随着互联网的萌芽,我们发现网站大部分都是在读文件,每次查询数据库就很麻烦,因此诞生了文件缓存,也就是IO
- 10年代,随着人数的增加因此,这里人们对系统的性能要求也在增加,以前使用表锁容易出现锁问题,因此出现了行锁Innodb,因此后来有了分表分库的使用,通过建立一个集群实现需求。但是没有什么人去用。
- 20年代,随着互联网的普及以及人们对其的依赖,例如微博等内容的迭代更新等数据内容,例如热榜,音乐等数据量大,而且变化很快的数据对于mysql来说已经不够用了,用户mysql存储的话数表很大,雄安率就会很低,因此需要一种数据库站出来解决这种问题。使得mysql的压力变小是需要解决的问题。
我们的曙光:NoSql 耀眼的向我们走来。它表示:这些问题我都能解决。
Redis:我和mysql都被你来用,Mysql不会吃醋吧,Mysql不会揍我吧!好可怕Mysql 不像我,我只心疼哥哥。
哥哥:你好骚呀!
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
认识一下NoSql
翻译为:not noly sql不仅仅是Sql关系型数据库:表格 ,行 ,列
泛指非关系型数据库的,随着web2.0互联网的诞生!传统的关系型数据库很难对付web2.0时代!尤其是超大规模的高并发的社区! 暴露出来很多难以克服的问题,NoSQL在当今大数据环境下发展的十分迅速,Redis是发展最快的,而且是我们当下必须要掌握的一个技术!很多的数据类型用户的个人信息,社交网络,地理位置。这些数据类型的存储不需要一个固定的格式!不需要多月的操作就可以横向扩展的 ! Map<String,Object> 使用键值对来控制!
特点是啥
1.方便扩展,因为书之间没有什么关联性
2.性能高,对于Redis 一秒写8万次,读11万次,Nosql是一种细密度的记录存储,因此超快。
3.数据类型多样,而且不惜要提前设计表的结构。
对于传统的RDBMS和NoSql
传统的 RDBMS
- 结构化组织
- SQL
- 数据和关系都存在单独的表中 row col
- 操作操作,数据定义语言
- 严格的一致性
- 基础的事务
Nosql
- 不仅仅是数据
- 没有固定的查询语言
- 键值对存储,列存储,文档存储,图形数据库(社交关系)
- 最终一致性,
- CAP定理和BASE (异地多活) 初级架构师!(狂神理念:只要学不死,就往死里学!)
- 高性能,高可用,高可扩
大数据时代的特点
- 海量的数据、
- 多样的数值
- 实时的返回
- 高并发
- 高可扩
- 高性能
NoSQL + RDBMS 一起使用才是最强的,阿里巴巴的架构演进!----------------这里就需要你再去深挖技术。
----------------------------QVQ-------------------不是太懂哦那个,先学后面会来看。
Nosql的分类
1.KV键值对
新浪:Redis
美团:Redis + Tair
阿里、百度:Redis + memecache
2.文档型的数据库(格式类似于json)
MongoDB (一般必须要掌握)
MongoDB 是一个基于分布式文件存储的数据库,C++ 编写,主要用来处理大量的文档!
MongoDB 是一个介于关系型数据库和非关系型数据中中间的产品!MongoDB 是非关系型数
据库中功能最丰富,最像关系型数据库的!
3.列存储数据库
HBase
分布式文件系统
4.图关系数据库
他不是存图形,放的是关系,比如:朋友圈社交网络,广告推荐!
Neo4j,InfoGrid;
对比
Redis基本学习
Redis的作用
啥是Redis
Remote Dictionary server 远程字典服务
是C语言编写的支持网络,也可基于内存也可持久化的日志型的Key-value的数据库,并提供了很多的接口。
redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了
master-slave(主从)同步。
Redis的作用
- 内存的持久化
- 效率高,用于告诉缓存
- 发布订阅系统
- 地图信息分析
- 计时器,计数器
特性
- 多样的数据类型
- 持久化
- 集群
- 事务
环境说明
这里我就不一一给大家去介绍安装Redis的安装步骤了,这里只是给出安装命令,这里我建议在Linux服务器或则虚拟机的linux上面安装Redis的环境。我这里采用的是华为云的服务器。
直接在下载https://redis.io/
tar -zxvf:对linux的版本压缩包进行解压。
yum install gcc-c++ //安装
make
make install
这里默认安装在 /usr/local/bin
redis.conf进行配置,后面的配置文件也是基于此文件。具体文件的配置信息,太多步一一介绍了。
- 启动
- 连接
- 关闭数据库
查看进程的linux
ps -ef|grep redis 这里来并不能理解,通过管道命令查看是否存在进程
性能测试