redis各种应⽤场景 a. 更多的数据结构; b. 可持久化; c. 计数器; d. 发布-订阅功能; e. 事务功能; f. 过期回调功能; g. 队列功能; h. 排序、聚合查询功能。
redis持久化机制 a. RDB:快照形式是直接把内存中的数据保存到⼀个 dump ⽂件中,定时保存,保存策略。(会丢数据) b. AOF:把所有的对Redis的服务器进⾏修改的命令都存到⼀个⽂件⾥,命令的集合。(影响性能)
mysql调优 a. explain select语句; b. 当只要⼀条数据时使⽤limit 1; c. 为搜索字段建索引; d. 避免select *; e. 字段尽量使⽤not null; f. 垂直分割; g. 拆分⼤的delete和insert语句:delete和insert会锁表; h. 分表分库分区。
说说rabbitmq的结构。 a. 消息处理过程: b. 四种交换机: i. 直连交换机,Direct exchange:带路由功能的交换机,根据routing_key(消息发送的时候需要指定)直接绑定到队列, ⼀个交换机也可以通过过个routing_key绑定多个队列。 ii. 扇形交换机,Fanout exchange:⼴播消息。 iii. 主题交换机,Topic exchange:发送到主题交换机上的消息需要携带指定规则的routing_key,主题交换机会根据这个规 则将数据发送到对应的(多个)队列上。 iv. ⾸部交换机,Headers exchange:⾸部交换机是忽略routing_key的⼀种路由⽅式。路由器和交换机路由的规则是通过 Headers信息来交换的,这个有点像HTTP的Headers。将⼀个交换机声明成⾸部交换机,绑定⼀个队列的时候,定义⼀ 个Hash的数据结构,消息发送的时候,会携带⼀组hash数据结构的信息,当Hash的内容匹配上的时候,消息就会被写⼊队 列。
rabbitmq队列与消费者的关系? a. ⼀个队列可以绑定多个消费者; b. 消息分发:若该队列⾄少有⼀个消费者订阅,消息将以循环(round-robin)的⽅式发送给消费者。每条消息只会分发给⼀个 订阅的消费者(前提是消费者能够正常处理消息并进⾏确认)。
项⽬中哪⾥⽤到了kafka,kafka特性? a. 场景: i. ⼤数据部⻔流数据处理; ii. elk; b. 特性: 它被设计为⼀个分布式系统,易于向外扩展; 它同时为发布和订阅提供⾼吞吐量; 它⽀持多订阅者,当失败时能⾃动平衡消费者; 它将消息持久化到磁盘,因此可⽤于批量消费,例如ETL,以及实时应⽤程序。