乱七八糟的知识

1.redis

redis本质上是一个Key-Value类型的内存数据库,整个数据库加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,redis的性能非常出色,每秒可以处理超过10万次读写操作,是已知性能最快的key-value。

最大的魅力是支持保存多种数据结构,此外单个value的最大限制是1GB。

redis的主要缺点是数据库容量收到物理内存的限制,不能用作海量数据的高性能读写,因此redis适合的场景主要限制在较小数据量的高性能操作和运算上。

为什么redis需要把所有数据放到内存中?

redis为了达到最快的读写速度将数据都读到内存中,并通过异步的方式将数据写入磁盘。所以redis具有快速和数据持久化的特征。如果不将数据放在内存中,磁盘IO速度会严重影响redis的性能。在内存越来越便宜的今天,redis将会越来越受欢迎。

redis常见的性能问题都有哪些?

master写内存快照,save命令调度rdbSave函数,会阻塞主线程的工作,当快照比较大时对性能影响是非常大的,会间断性暂停服务,所以master最好不要写内存快照。

redis主从复制的性能问题,为了主从复制的速度和连接的稳定性,slave和master最好在同一局域网内。

redis适合那些场景有哪些?

会话缓存,全页缓存,队列,排行榜,计数器,发布,订阅。

redis用过redisNX吗?redis有哪几种数据结构?

String-字符串,hash-字典,list-列表,set-集合,sorted set-有序集合。

redis的优缺点?

性能极高,redis能支持超过100K+ 每秒的读写频率。

丰富的数据类型-redis支持二进制案例的Strings,Lists,Hashes,sets及Ordered Sets数据类型操作。

原子-redis的所有操作都是原子性的,同时redis还支持对几个操作合并后的原子性执行。

由于是内存数据库,所以,单台机器,存储的数据量,跟机器本身的内存大小有关。虽然redis本身有key过期策略,但是还是需要提前预估和节约内存。如果内存增长过快,需要定期删除数据。

redis的持久化:

RDB持久化:该机制可以在指定的时间间隔内生成数据集的时间点快照。

AOF持久化:记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。AOF文件中的命令全部以redis协议的格式来保存,新命令会被追加到文件的末尾。redis还可以在后台对AOF文件进行重写,使得AOF文件的体积不会超过保存数据集状态所需的实际大小。

无持久化:让数据只在服务器运行时存在。

同时应用AOF和RDB:当redis重启时,它会优先使用AOF文件来还原数据集,因为AOF文件保存的数据集通常比RDB文件所保存的数据集更完整。

RDB的优缺点:

优点:RDB是一个非常紧凑的文件,它保存了redis在某个时间点上的数据集,这种文件非常适合用于进行备份,比如说,你可以在最近的24小时内,每小时备份一次RDB文件,并且在每个月的每一天,也备份一个RDB文件。这样的话,即使遇到问题,也可以随时将数据集还原到不同的版本。RDB非常适用于灾难恢复:它只有一个文件,并且内容都非常紧凑,可以在加密后将它传送到别的数据中心,或者亚马逊S3中。RDB可以最大化redis的性能。

缺点:可能会在正准备进行下一次备份的时候,服务器故障了,就会丢失本次未备份的数据。

AOF的优缺点:

优点:使用AOF持久化会让reids变得非常耐久,你可以设置不同的fsync策略。同时AOF的默认策略为每秒钟fsync一次,在这种配置下,redis仍然可以保持良好的性能,并且就算发生故障,也就丢失一秒的数据。同时redis在AOF文件体积变得过大时,自动地在后台对AOF进行重写,重写后的新的AOF文件包含了恢复当前数据集所需的最小的命令集合。而且重写是绝对安全的。

如何使用activeMQ解决分布式事务:

如果实在传统的集中式架构中,实现用户注册功能是非常简单的:开启一个本地事务,往本地数据库中插入一条用户数据,发送验证码,提交事务。

但是在分布式架构中,用户和发送验证码是两个独立的服务。他们都有各自的数据库,那么就不能通过本地事务保证操作的原子性。这是我们就需要用到activeMQ来为我们实现这个需求。

在用户进行注册操作的时候,我们为该操作创建一条消息,当用户信息保存成功时,把这条消息发送到消息队列。验证码系统会监听消息,一旦接受到消息,就会给该用户发送验证码。

如何防止消息重复发送:增加消息状态表,通俗来说就是一个账本,用来记录消息的处理转态,每次处理消息之前,都去状态表查询一次,如果已经有相同的消息存在,那么不处理,可以防止重复发送。

springmvc:

springmvc的工作原理:

1 用户向服务器发送请求,请求被springmvc前端控制器DispatchServlet捕捉;

2 DispatcherServlet对请求URL进行解析,得到请求资源标识符URL,然后根据该URL调用HandlerMapping将请求映射到处理器HandlerExcutionChain;

3 DispatchServlet根据获得Handler选择一个合适的HandlerAdapter适配器处理。

4 Handler对数据处理完成以后将返回一个ModelAndView对象给DisPatchServlert;

5Handler返回的ModelAndView只是一个逻辑视图并不是一个正式的视图,DispatcherSevlet通过ViewResolver视图解析器将逻辑视图转化为真正的视图View;

6 DispatchServlet通过model解析出ModelAndView中的参数进行解析最终展现出完整的view并返回给客户端;

SpringMVC常用的一些注解:

@requestMapping用于请求url映射;

@RequestBody 注解实现接收http请求json数据,将json数据转换为java对象;

@responseBody 注解实现将controller方法返回对象转化为json响应给客户

Spring:

对spring的理解:

Spring是一个开源框架,为简化企业级应用开发而生。Spring是一个IOC和AOP容器框架;

控制反转(IOC):传统的java开发模式中,当需要一个对象时,我们会自己使用new或者getInstance等直接或者间接调用构造方法创建一个对象。而在spring开发模式中,spring容器使用了工厂模式为我们创建了所需要的对象,不需要我们自己创建,直接调用spring提供的对象就可以了,这是控制反转的思想、

依赖注入(DI):spring使用javaBean对象的set方法或者带参数的构造方法为我们创建所需对象时将其属性自动设置所需要的值的过程,这就是依赖注入的思想;

面向切面编程(AOP):在面向对象编程思想中,我们将事务纵向抽成一个个的对象,而在面向切面编程中。我们将一个个的对象某些类似的方面横向抽成一个切面,对这个切面进行一些如权限控制,事务管理,记录日志等公用操作处理的过程就是面向切面编程的思想。AOP底层是动态代理。

spring的常用注解:

@Required:该注解应用与设值方法

@Autowired:该注解应用于有值设值方法,非设值方法,构造方法和变量。

计算机网络:

三次握手-tcp/ip,传递完数据断开的时候要进行四次握手,一般称为“四次挥手”。

网络协议为计算机网络中进行数据交换而建立的规则,标准或约定的集合。

https:

https协议需要申请证书,一般免费证书较少,因而需要一定费用;http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议;http和https使用的完全不同的连接方式,用的端口也是不一样的,http是80,https是443;http的连接简单,是无状态的;https协议是由ssl+http协议构建的可进行加密传输,身份认证的网络协议,比http安全。

客户端在使用https的URL访问web服务器,要求与web服务器建立ssl连接。web服务器收到客户端请求后,会将网站的证书信息传送一份给客户端。客户端的浏览器与web服务器开始协商ssl连接的安全等级,也就是信息加密的等级。客户端的浏览器根据双方同意的安全等级,建立会话秘钥,然后利用网站的公钥将会话秘钥进行加密,并传送给网站。web服务器利用自己的私钥解密出会话秘钥。web服务器利用会话秘钥加密与客户端之间的通信。

https的优点:

使用https协议可认证用户和服务器,确保数据发送到正确的客户机和服务器。https协议是由ssl+http协议建构的可进行加密传输,身份认证的网络协议,要比http协议安全,可防止数据在传输过程中不被窃取,改变,确保数据的完整性。https是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅度增加了中间人攻击的成本。

https的缺点:

https协议握手阶段比较费时,会使页面的加载时间延长,https连接缓存不如http高效,会增加数据开销的功耗,甚至已有的安全措施也会因此而受到影响。ssl证书需要钱,功能越强大的证书,消耗越高。ssl证书通常需要绑定ip。

路由器与交换机:

路由器工作在第三层(网络层),而我们常说的交换机工作在第二层(数据链据层)

路由器:寻址,转发(依靠ip,路由表)

交换机:过滤,转发(依靠MAC地址)

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值