本资料转载于传智教育-解锁你的IT职业薪未来,仅用于学习和讨论,如有侵权请联系
1、8种数据结构,两个消息队列,四个不同的运维操作
1.1 最后一个script脚本和事务操作
1.2 点评网大量用到了redis
1.3 redis常用的场景,分布式锁,Lua脚本----redis企业应用大部分应用场景
1.4 高级篇
1.5 如何利用我们的java语言来访问redis,redis常用的数据结构有哪些
2、redis内存的都是键值对的数据,对于用户来讲都是键值对的数据
2.1 这样做的坏处是让数据打散了,但是我们可以让他变成json数据格式去存
2.2 key是id,像这样的我们称为NOSQL,他跟MySQL有什么区别,我们该如何操作数据那!
2.3 基础内容
3、初始redis
3.1 sql是关系型数据库,在国外是seql
3.2 NOSQ最后的目的一定是数据的增删改查
3.3 MySQL是一种结构数据库,会对插入的数据进行检验,数据库无非就是增删改查,这种结构化的数据最好在项目的设计之初就设计好,一旦你数据插入的较多,可能你修改一个字段带来的影响是非常巨大的,所以要求,你在设计数据库之前就将字段提前设计好,很长一段时间不可用,而且表跟业务有关联,将来表变了,结构也得变。
3.4 NoSql的出现减弱了结构化的带来的影响,常见的NoSql数据类型有四种,第一种是我们键值型的NoSql数据库,他的Key是自定义的,你想要什么都行:他代表着你将一行数据存进去了
4.数据结构
4.1 Document数据结构,把我们数据封装成json数据插入进入,它封装的数据一整条数据,他的差异是什么,这个json是自定义的,字段插入非常松散,我叫id,我叫username无所谓,插入啥都行
4.2 图类型的数据库,图类型的数据库可以看成一个节点:比如人跟人之间有节点关系,老师之间存在师生关系,NOSQL的数据库,无论怎么看,它们的数据结构都比较松散,他们之间字段加一个或少一个影响差异较小
4.3 数据与数据之间是有关系的,这有三张表,三张表之间是没有任何关系的
4.4 关系的建立,他的主键关联起了用户的id,这样就建立了订单表和用户表的关系
4.5 他的商品id对应的就是商品表中的id
4.6 表跟表之间的关系通过外键建立起来了,但是也存在了一个问题,此时我想要删除了一个商品或者订单,就会出问题,因为表之间互相影响
5、我想维护一个商品下了多少单,怎样去维护,必须采用json的形式去维护:用户下个订单,里面可以包括一个订单,两个订单,还有商品item,同时还有对应的商品信息,这样就把一个用户下了几个订单,每个订单下的商品信息都下载下来了;(通过json嵌套的方式去用),
5.1 缺点--重复,张三买了荣耀6,李四可不可以也买,也就是你这个文档存储多份,在多个用户里面
5.2 为什么你不只记录用户id那?然后再建一个表,单独存商品,这样也行,这种关系要靠程序猿和业务逻辑去维护了,因为数据库是不会维护表和表之间的关联
5.3 NoSql特点2---无关联
5.4 查询,关系型用sql
5.4.1查询条件
5.4.2 redis的查询 get user(key),:1(含义:用户1)
5.4.3 MongoDB(找)
5.4.4请求
6、NoSql与sql第四个差异,事务差异,NOSql无法满足ACID,只能基本满足,我们称为base,如果你要满足ACID就要优先使用sql而不是NoSql
ACID(原则性,一致性,。。。)
7、总结
内存的好处是查询快,redis的数据放内存
8、订单数据安全性较高,建议用sql存储,为了提升订单数据,我们可以把部分订单数据放到NOsql数据里
9 redis远程词典服务器,为什么叫做词典,根据key查询字段,为什么要发明redis,建了一个网站,用户访问量大的时候打不开,并发高的时候撑不住了,于是想有没有这样一个库,并发能力很强,他希望有这样一个库,吞吐能力很强,并发能力很高,并且还有一些业务的需求
9.1
10 redis服务器开发之后,具备了很多的特征
10.1第一个特征,键值型,可以是字符串,也可以集合,字符串
10.2 单线程,不会存在一个命令插入的时候,另一个命令插入的情况