举例一:SpringBoot+shiro+redis 一个账户只允许一处登录,强制用户下线
这个小难点实现了,一个用户只允许登录一个功能。
大概思路是:
1.每次请求获取他的session和sessionid
2.如果用户没有登录,走正常登录流程
3.如果用户来获取队列,但是队列里面没有数据,那么就新建一个存,将sessionid存到队列里面,用户名存到session里面
4.如果队列的size大于0,判断队列里面的sessionid和session里面的用户是否一样。
5.如果sessionid不一样,但是用户名是一样的,存到队列里面,那么这时候size>1
6.如果队列里面的数据大于1,那么就清楚掉老的sessionid。
7.更新缓存。
java面试:你做项目过程中遇到什么问题?
1、redis存一些热点数据,没有设置过期时间,采用默认相同的 过期时间,后来数据同时失效。大量的请求就落到了数据库,数据库数据库差点崩了。
2、循环嵌套循环,后来采用Java8新特性,提取一个集合某一对象的其中一个属性(例如id)有效的可以解决循环嵌套。
3、redis数据与数据库数据不同,出现了脏数据,没有设置过期时间。后来前端在请求数据的时候一直都是,先删除缓存,在更新数据库,在增删改时候我们都会删除一次缓存的,
4、使用分页插件没有实现分页。因为spring boot版本与pagehelper版本不兼容。
5、一对多数据查询翻倍:不写join链接,采用的是<select>这个标签。问题原因:多查了
关于java面试:你做项目过程中遇到什么问题?
你还可以弄jvm调优,数据库调优,比如分库分表之类的等等。
这个东西,一定要自己去积累,很多应届生或者初学者,照着网上的敲了一遍,其实还是理解不是那么深透。
侵权联系与免责声明
1、本站资源所有内容均收集于网络,与本网站立场无关
2、本站所有资源收集于互联网,由用户分享,该帖子作者与777it网站不享有任何版权,如有侵权请联系本站删除
3、本站部分内容转载自其它网站,但并不代表本站赞同其观点和对其真实性负责
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
侵权联系邮箱:648765304@qq.com 本文链接:https://777it.cn/602.html。
评论0