10、redis有哪些数据类型?你常用哪些数据类型?redis有哪些数据类型: string list set hash zset geospatial hyperloglog bitmaps常用哪些数据类型: string hash zset: 比如 做浏览记录 bitmaps: 比如 每日打卡(占用内存小)
11、如何在redis中保存一个java对象,又如何把redis中数据变为java对象?如何在redis中保存一个java对象: 将对象转换为json字符串,存入redis中如何把redis中数据变为java对象: 从redis中获取对象json字符串,再转为对应的对象注意: 需要自定义对象序列化方式
12、什么是序列化?为什么需要序列化,在哪些场景中需要序列化?什么是序列化: 把对象转换为字节序列的过程 将对象的状态信息转换为可以存储或传输的形式的过程什么是反序列化: 把字节序列恢复为对象的过程为什么需要序列化: 序列化的原因是 想将对象转换成流,方便存储和在网络上传输 。在哪些场景中需要序列化: 把内存中的对象状态保存到一个文件或者数据库中时候 用套接字再网络上传送对象的时候 通过RMI传输对象的时候(RMI是什么东西?):RMI总结来说就是远程调用对象,在一个jvm上调用另一个jvm的对象 。通过RPC调用接口,获取对象的时候 把对象存入redis中的时候
13、redis是单线程还是单进程的?redis是单线程还是单进程: 单线程:redis 为什么快: 为什么redis那么快?剖析redis快的原因: https://blog.csdn.net/qq3073959033/article/details/127415029 https://blog.csdn.net/weixin_43001336/article/details/122773260 1.纯内存KV操作 2.单线程操作 3.I/O 多路复用 4.Reactor 设计模式那么为什么Redis是单线程的:https://blog.csdn.net/weixin_44395707/article/details/106192656原因如下:1. CPU不是瓶颈:Redis的所有操作都是基于内存的,而CPU不是Redis的瓶颈 。在大多数情况下 , Redis的瓶颈很可能是机器内存或网络带宽的大小 。如果我们想要更高的性能,可以使用单线程Redis,我们可以使用集群(多个进程)解决方案 。2. 并发性:并行性不是支持多个客户端的唯一策略 。Redis使用epoll和事件循环来实现并发策略并节省大量时间而无需上下文切换 。3. 易于实现:编写多线程程序可能会更加困难 。我们需要为线程添加锁和同步机制 。4. 易于部署:单线程应用程序可以部署在至少具有单个CPU内核的任何计算机上 。
14、简述下redis 中 setnx命令的效果或作用?redis 中 setnx命令的效果或作用: 只有key不存在的情况下,设置key的值,如key存在,则什么也不做 。设置成功返回1,失败返回0;redis setnx java_Redis SETNX 命令: https://blog.csdn.net/weixin_39517289/article/details/114468562
15、介绍下你用redis做过的一些业务,以及为什么你用redis 做 。用redis做过的一些业务: 缓存 数据共享分布式 分布式锁 全局ID 计数器 限流 位统计 购物车 用户消息时间线timeline 消息队列 抽奖 点赞 签到 打卡 商品标签 商品筛选 用户关注 推荐模型 排行榜Redis 16 个常见的使用场景: https://blog.csdn.net/gp_911014/article/details/124744869
16.事务隔离级别有哪些?MySQL的默认隔离级别是?事务隔离级别有哪些: 读未提交 读已提交 可重复读 可串行化MySQL的默认隔离级别是: 可重复读脏读、幻读和不可重复读:https://blog.csdn.net/qq_41776884/article/details/81608777 脏读: 脏读就是指当一个事务正在访问数据,并且对数据进行了修改 , 而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据 , 然后使用了这个数据 。不可重复读: 是指在一个事务内,多次读同一数据 。在这个事务还没有结束时,另外一个事务也访问该同一数据 。那么,在第一个事务中的两次读数据之间,由于第二个事务的修改,那么第一个事务两次读到的的数据可能是不一样的 。这样就发生了在一个事务内两次读到的数据是不一样的,因此称为是不可重复读 。幻读: 是指当事务不是独立执行时发生的一种现象 , 例如第一个事务对一个表中的数据进行了修改,这种修改涉及到表中的全部数据行 。同时,第二个事务也修改这个表中的数据,这种修改是向表中插入一行新数据 。那么 , 以后就会发生操作第一个事务的用户发现表中还有没有修改的数据行,就好象发生了幻觉一样. 提醒: 脏读:一个事务读取到另外一个事务没有提交的修改数据 不可重复读的重点是修改:同样的条件,你读取过的数据,再次读取出来发现值不一样了 幻读的重点在于新增或者删除:同样的条件,第 1 次和第 2 次读出来的记录数不一样
隔离级别脏读不可重复读幻读READ-UNCOMMITTED√√√READ-COMMITTED×√√REPEATABLE-READ××√SERIALIZABLE×××17、为什么要使用统一返回类?
推荐阅读
- 三 SpringBoot - Ribbon客户端负载均衡,Zuul网关,Config配置中心
- 之五 2流高手速成记:Springboot整合Shiro实现安全管理
- SpringBoot Starter缘起
- SpringBoot自定义注解+异步+观察者模式实现业务日志保存
- 四 AIR32F103 27倍频216MHz,CoreMark跑分测试
- 装配 SpringBoot自动配置流程
- 真我GTNeo2T测评_真我GTNeo2T续航情况测试
- Springboot 一行代码实现文件上传 20个平台!少写代码到极致
- SpringBoot内置工具类,告别瞎写工具类了
- python渗透测试入门——基础的网络编程工具