年前把SSM和Linux学完了,过年期间简单的做了个ssm的项目,再理解理解SSM。今天继续学了radis,也是比较重要的一个技术。
radis:
简单来说就是把数据存到缓存里的技术,常常和关系数据库结合使用,我们可以把数据库拿出来的数据存到缓存里,这样减少了io的次数,大大提高了效率。
radis的学习大概有这几个内容
①radis能存什么数据类型
②对比于不同数据类型的操作
③radis对于数据的持久化操作:分为rdb和aof。rdb存储的是数据,aof存储的是创建数据的操作。
④radis的主从复制:radis能够把数据进行异步复制,主节点用来写,子节点用来读。以此提高了数据的稳定性。
⑤哨兵:能够检测主节点是否宕机,如果主节点宕机,哨兵会做出反应,让子节点成为主节点。
⑥集群:将数据分片存储,以此提高稳定性。
⑦jadis:radis给java语言提供了api接口,使客户端连接服务器后能把数据缓存处理。
算法:
前端时间把回溯和贪心的题做完了,总体来说前者的规律性比较强,后者则没有太多规律。随后单调栈的题也完成了,实际上是利用了栈先进后出的特点,让其存储数据的下标,根据数据的大小关系从栈中提出下标对结果进行运算。
今天开始正式开始做动态规划,前面几题都比较简单,就是通过局部答案推出全局答案。大众分两种,不一一总结了,第一种是最终答案就由前一步的答案组成,只需要一次循环。第二种是答案要取最大最小值答案组成结构不一定,因此要做嵌套循环。然后就开始0-1背包的问题了:
①分割等和子集:以一半和为背包空间,每个数字为子集。当前空间与当前物品相等就是true。
②最后一块石头的重量Ⅱ:同样以一半和为空间,取当前空间下背包最大重量。
③目标和:因为left+right=sum,left-right=target,所以left=(sum+targrt)/ 2,以left为空间,记录总和等于空间的次数。初始化时左边置为1,如果有0要置为2的平方。
④一和零:明天做。。