发表于: 2019-11-24 22:42:09
1 1071
今天完成的事情:
使用tomcat和jetty负载均衡
配置nginx.conf文件
任务测压报告
本地mecached的之前日报里有贴有,因为整合redis时把mecached的配置给删了,忘记保存结果了。。。
之前我一直是看吞吐量来判定效率好坏,通过时间来看的话添加缓存后确实要快一点。。。
明天计划的事情:开启任务七
任务六个人脑图
任务六深度思考
1.后台只允许有列表页和详情页,列表页分为搜索区和列表区和操作区,原因是什么?有没有其他设计方式,相比之下各自的好处是什么?
后台是面向管理人员,目的是高效率修改参数,需要尽量提高操作效率。
2.什么叫集群?缓存应该在什么情况下使用集群?有哪些实现集群的方案?
集群,通过多个计算机完成同一个工作。(同一个业务部署在多个服务器上)
Redis解决方案:客户端、代理、服务器分割请求
Twemproxy作为代理,可接受来自多个程序的访问,按照路由规则,转发给后台的各个Redis服务器,再原路返回。
Codis:Twemproxy引入了Group的概念,每个Group包括1个Redis Master及至少1个Redis Slave
Redis-cluster:redis3.0中推出,支持Redis分布式集群部署模式。采用无中心分布式架构。所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽.节点的fail是通过集群中超过半数的节点检测失效时才生效。
3.什么是压测,为什么要进行压力测试?JMETER工具的使用
压测,即压力测试,是确立系统稳定性的一种测试方法,通常在系统正常运作范围之外进行,以考察其功能极限和隐患。简单的说,压力测试就是让我们提前测出我们的服务器能够抗住多少用户访问,以便做出优化。
4.Memcache和Redis可否做集群?什么样的情况下应该做集群?
可以做。
由于Redis只使用单核,而Memcached可以使用多核,所以平均每一个核上Redis在存储小数据时比Memcached性能更高。而在100k以上的数据时,Memcached性能要高于Redis,
5.什么是脏数据,缓存中是否可能产生脏数据,如果出现脏数据该怎么处理?
脏读:读取出来脏数据就叫脏读。
缓存产生脏数据:数据库数据更新了,但是缓存中的数据没有及时更新
6.插入,更新和查询数据的时候,读写缓存和DB的顺序应该是怎么样的?
更新数据时,先更新DB再删除缓存
插入时先更新DB,查询时先查询缓存
7.JVM缓存和Memcache这种缓存的区别在哪里?是否可以不使用Memcache,只用虚拟机内存做缓存?
JVM确保Heap区域内的空间足够,如果不够则使用触发GC在内的方法获得空间;获得空间之后会找一组堆内的连续地址分配数组,
可以。但是效果不如缓存软件。
8.缓存应该在Service里,还是应该存放在Controller里,为什么?
缓存应该放在service里。
首先,缓存相当于是内存数据库,所以在service层调用和增加缓存。
其次,放在service层里是为了减少controller的代码量。
9.什么叫穿透DB?什么情况下会发生,穿透DB后会发生什么事情?
缓存失效时导致高并发穿透DB;会导致数据库崩溃;
10.什么叫命中率?正常来讲,命中率应该控制在多少?
命中率是指能够在缓存中获取需要的数据。一个缓存失效机制和过期时间设计良好的系统,命中率应该达到95%以上;
11.什么样的数据适合存在缓存中?缓存的淘汰算法有哪些?
最不经常使用算法(LFU)
最近最少使用算法(LRU)
自适应缓存替换算法(ARC)
先进先出算法(FIFO)
最近最常使用算法(MRU)
那些访问量大的,变化比较小的,适合放在缓存中。
12.什么叫一致性哈希,通常用来解决什么问题?
一致性哈希是一种哈希算法,可以有效解决分布式存储下增加或删除节点所带来的问题。它和hash最关键的区别就是,对节点和数据,都做一次哈希运算,然后比较节点和数据的哈希值,数据取和节点最相近的节点做为存放节点。这样就保证当节点增加或者减少的时候,影响的数据最少。
13.缓存的失效策略有哪几种,分别适合什么场景?
1.FIFO:First In First Out,先进先出。判断被存储的时间,离目前最远的数据优先被淘汰。
2.LRU:Least Recently Used,最近最少使用。判断最近被使用的时间,目前最远的数据优先被淘汰。
3.LFU:Least Frequently Used,最不经常使用。在一段时间内,数据被使用次数最少的,优先被淘汰。
14.Memcache和Redis的区别是什么?
1、 Redis和Memcache都是将数据存放在内存中,都是内存数据库。不过memcache还可用于缓存其他东西,例如图片、视频等等。
2、Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储。
3、虚拟内存–Redis当物理内存用完时,可以将一些很久没用到的value 交换到磁盘 。
4、过期策略–memcache在set时就指定,例如set key1 0 0 8,即永不过期。Redis可以通过例如expire 设定,例如expire name 10 。
5、分布式–设定memcache集群,利用magent做一主多从;redis可以做一主多从。都可以一主一从 。
6、存储数据安全–memcache挂掉后,数据没了;redis可以定期保存到磁盘(持久化) 。
7、灾难恢复–memcache挂掉后,数据不可恢复; redis数据丢失后可以通过aof恢复 。
8、Redis支持数据的备份,即master-slave模式的数据备份。
15.怎么预估自己系统可承载的日活数?
通过每个页面反应时间确定最佳的承载数量
16.什么是JMeter?Jmeter是否可以在多台机器上分布式部署?为什么要分布式部署?
测压工具,可以在多台机器上分布部署,方便测试;
17.什么是TPS,什么是每秒并发数,什么是90%Line?分别应该到达多少算符合系统上线的要求?
TPS是每秒事物处理量.每秒并发数就是,每秒用户访问的数量,90% 用户的响应时间...达到多少的话,我觉得具体视情况而定,修真院的要求是
每秒并发数为20,循环50次数时
TPS应不小于100
接口的平均访问时间应低于200ms;
评论