周测试归纳

单选

1.JWT 的签名部分是用来做什么的?

A确保消息的完成性

B确保消息的机密性

C确保消息的可用性

D以上都不是

答案:A

2.JWT 的头部部分是用来做什么的?

A声明类型和加密算法

B存储用户信息

C存储访问权限

D储存数据加密方式

答案:A

3.JWT 可以被用作什么?

A用户认证

B数据加密

C数据传输

D以上都是

答案:D

4.以下哪个不是 JWT 的组成部分?

A头部

B载荷

C签名

D数据库

答案:D

5.关于SpringCache中的Cacheable注解,说法错误的是?

A标注在方法上,也可以标注在类上

Bvalue缓存名,key缓存键值

C只能标注在方法上

D标注在方法上表示缓存该方法的返回值

答案:C

6.下面哪种 ID 生成机制需要访问数据库?

A自增长ID

BUUID

CSnowflake

D短ID

答案:A

7. JWT 的签名部分是怎么实现的?

A使用密钥对整个JWT进行签名

B使用密钥对头部和载荷分别进行签名

C使用非对称加密算法对整个JWT进行签名

D不需要签名

答案:B

8.JWT 可以使用哪些算法来对载荷进行签名和加密?

A HS256

B RS256

C ES256

D以上都是

答案:D

多选

1.

关于SpringCache中,CacheAble和CachePut注解说法正确的是?

A@Cacheable 的逻辑是:查找缓存-有就返回-没有就执行方法体-将结果缓存起来

B@Cacheable 的逻辑是:执行方法体-将结果缓存起来

C@CachePut 的逻辑是:执行方法体-将结果缓存起来

D@CachePut 的逻辑是:查找缓存-有就返回-没有就执行方法体-将结果缓存起来

答案:A.C

简答

1.什么是雪花id,简述雪花id的优缺点?

答案:

snowflake是Twitter开源的分布式ID生成算法,结果是64bit的Long类型的ID,有着全局唯一和有序递增的特点。

优点

1、生成速度快经测试,SnowFlake每秒能够产生26万ID左右。

2、生成id有序,雪花算法生成的id整体是递增的,但是不是连续的。

3、本地即可生成,无需消耗额外的资源,如zookeeper、redis等。

缺点

1、id长度比较长(大概18位)

2、id不连续,生成的id是无规则的。

3、如果机器时钟回拨,就会导致id生成失败。

4、不同机器的时钟不是完全一致的,导致全局的id并不是统一向上自增。

2.JWT 和 session 的区别是什么?

答案:

JWT 和 session 都是用于身份认证和授权的机制,但它们的实现方式不同。session 是服务器存储用户状态的一种方式,通常通过在服务器上创建一个唯一的会话 ID,将用户的身份信息保存在会话中,然后将会话 ID 发送给客户端,客户端在后续请求中携带会话 ID,服务器通过会话 ID 来获取用户的身份信息。

  1. JWT 则是通过在客户端和服务器之间传递一个加密的、自包含的 Token 来实现身份认证和授权,避免了服务器存储用户状态的问题,同时也降低了网络传输和服务器负载等问题。

3.简要描述SpringCache的常用注解

答案:

1.@Cacheable

定义在方法上,待方法运行结束时,缓存该方法的返回值。

每次执行该方法前,会先去缓存中查有没有相同条件下,缓存的数据,有的话直接拿缓存的数据,没有的话执行方法,并将执行结果返回。
2.@CachePut
通常用于更新操作。

@Cacheable 的逻辑是:查找缓存 - 有就返回 -没有就执行方法体 - 将结果缓存起来;

@CachePut 的逻辑是:执行方法体 - 将结果缓存起来
3.@CacheEvit

删除缓存,每次调用它注解的方法,就会执行删除指定的缓存

解题思路: 1.@Cacheable 定义在方法上,待方法运行结束时,缓存该方法的返回值。 每次执行该方法前,会先去缓存中查有没有相同条件下,缓存的数据,有的话直接拿缓存的数据,没有的话执行方法,并将执行结果返回。 2.@CachePut 通常用于更新操作。 @Cacheable 的逻辑是:查找缓存 - 有就返回 -没有就执行方法体 - 将结果缓存起来; @CachePut 的逻辑是:执行方法体 - 将结果缓存起来 3.@CacheEvit 删除缓存,每次调用它注解的方法,就会执行删除指定的缓存

4.JWT 的优点是什么?

答案:JWT 的优点在于它具有自包含、易于传输和跨平台等特点。由于 JWT 中包含了用户的身份信息和其他声明信息,因此可以在多个应用之间共享用户的身份信 息,避免了重复登录和身份验证的过程,同时也降低了网络传输和服务器负载等问题。

5.简述Redis的持久化策略?

答案:

RDB是Redis的一种数据持久化到磁盘的策略,是一种以内存快照形式保存Redis数据的方式。所谓快照,就是把某一时刻的状态以文件的形式进行全量备份到磁盘,这个快照文件就称为RDB文件,其中RDB是Redis DataBase的缩写。

AOF 持久化功能则提供了一种更为可靠的持久化方式。 每当 Redis 接受到会修改数据集的命令时,就会把命令追加到 AOF 文件里,当你重启 Redis 时,AOF 文件里的命令会被重新执行一次,重建数据。

6.列举Redis的常用数据类型?

答案:string
list
set
sorted set
hash

7.跨域的常用解决方案?

答案:

  1. @CrossOrign
  2. 配置类实现WebMvcConfigurer

8.什么是redis的缓存雪崩?如何解决

答案:

  • 保证缓存层服务高可用性。
  • 对缓存系统做实时监控,报警。
  • 依赖隔离组件为后端限流并降级。
  • 做好持久化,以便数据的快速恢复。

9.什么是redis的缓存穿透?如何解决

答案:是指缓存和数据库中都没有的数据,而用户(黑客)不断发起请求。

10.什么是redis的缓存击穿?如何解决

答案:

而缓存击穿是一个热点的Key,有大并发集中对其进行访问,突然间这个Key失效了,导致大并发全部打在数据库上,导致数据库压力剧增。这种现象就叫做缓存击穿。

对于热点的key可以设置永不过期的key。

11.Redis的数据过期策略?

答案:

定时删除
在设置key的过期时间的同时,为该key创建一个定时器,让定时器在key的过期时间来临时,对key进行删除
惰性删除
key过期的时候不删除,每次从数据库获取key的时候去检查是否过期,若过期,则删除,返回null。
定期删除
每隔一段时间执行一次删除(在redis.conf配置文件设置hz,1s刷新的频率)过期key操作

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值