本文主要是介绍中兴暑期实习-一面-挂,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一面 挂!!!!
纯纯都是 简历上的东西,很多基础的也没有回答上来。
1 项目面试:
-
讲一下项目的具体流程,自己负责的哪些部分?
-
Vue和React 的区别
- Vue更加灵活轻量,主张底层库和解决方案的自由组合,采用双向数据绑定
- Vue使用模板和选项对象进行开发,使得代码更加容易阅读
- Vue提供了响应式系统来自动追踪依赖和更新DOM
- React : 采用的是单向数据流,通过状态管理来控制组件行为
- React强调的是 函数时编程,利用Hooks在函数组件中引入状态和生命周期
-
对于Redis你了解多少?讲一下
-
Redis 有哪些数据结构?
- 字符串 String :缓存、限流、分布式锁、计数器。
- 字典 Hash :用户信息、用户主页访问量、组合查询等。
- 列表 List::简单队列、关注列表时间轴。
- 集合 Set:赞、踩、标签等。
- 有序集合 Zset:排行榜、好友关系链表。
-
Redis 有哪些持久化机制?
RDB 和 AOF。
-
RDB : 指定的时间间隔内将内存中的数据集快照写入磁盘。也是默认的持久化方式。支持 同步(save 命令)、后台异步(bgsave)以及自动配置三种方式触发。
- 全量备份: 非常适用于进行备份,灾难级恢复
- 生成RDB时支持异步处理,主进程不需要任何磁盘的IO操作
- RDB 在恢复大数据集时的速度比 AOF 的恢复速度要快
- 但是在快照持久化期间修改的数据不会被保存。
-
AOF :会将每一个收到的写命令追加到文件中。随着时间推移,AOF 持久化文件也会变的越来越大。Redis会 fork 出一条新进程将内存中的数据以命令的方式保存到临时文件中,完成对AOF 文件的重写。
- 触发方式:1)每修改同步 always 2)每秒同步 everysec 3)不同no:从不同步。
- AOF 可以更好的保护数据不丢失
- AOF 日志文件没有任何磁盘寻址的开销,写入性能非常高,文件不容易破损
- 对于同一份数据来说,AOF 日志文件通常比 RDB 数据快照文件更大
-
-
-
看见是Redis集群,这个你是怎么布置的?
我们采用了Redis Cluster来布置Redis集群。我们有6台服务器,每台服务器上都部署了3个Redis实例,总共18个实例。我们将这些实例分成6个主节点和6个从节点,每个主节点上有2个从节点。这样,即使有一台服务器发生故障,其他服务器上的Redis实例仍然可以保持可用性。我们使用Redis Cluster的哈希槽分配方式16834 来分配数据,确保数据均匀分布在不同的节点上。
Redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value时,redis 先对 key(有效值)使用 crc16 算法算出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点。
Redis 集群没有使用一致性hash, 而是引入了哈希槽的概念。- 缓存违规车辆数据:
- 当违规车辆数据首次被查询时,系统会先检查 Redis 缓存中是否存在该数据。
- 如果缓存中存在数据,则直接从 Redis 中获取,并返回给用户,避免了对数据库的频繁访问。
- 如果缓存中不存在数据,则从数据库中查询,并将查询结果存储到 Redis 缓存中,以供后续查询使用。
-
使用分布式锁保证数据一致性:
- 当多个线程同时对违规车辆数据进行操作时,为了避免数据竞争和不一致性,可以使用 Redisson 分布式锁。
- 在对数据进行操作前,先获取 Redisson 分布式锁,确保只有一个线程可以对数据进行操作。
- 操作完成后释放锁,让其他线程可以继续操作数据。
-
利用 Redis 集群处理管控策略数据:
-
管控策略数据可能包括各种规则和限制条件,如禁止通行区域、限速范围等。
-
将管控策略数据存储在 Redis 集群中,以便快速查询和更新。
-
可以使用 Redis 的数据结构,如哈希表或有序集合,来存储和管理管控策略数据。
-
存储管控策略数据:
-
当需要存储管控策略数据时,可以通过一致性哈希算法将数据分散存储在不同的 Redis 实例上,确保负载均衡和高可用性。
-
在每个主节点上创建多个数据库(database),将不同类型的数据存储在不同的数据库中,以便管理和维护。
// Java代码示例 public void saveControlPolicy(String policyId, ControlPolicy policy) {int hash = hash(policyId); // 使用一致性哈希算法计算哈希值String node = getNode(hash); // 根据哈希值选择存储节点redisClusterService.saveControlPolicyToNode(node, policyId, policy)<
-
-
-
这篇关于中兴暑期实习-一面-挂的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!