待整理归档知识

1. SQLITE 最主要特性:没有网络模块,没有版权问题。

2. go:协程(Goroutine)是轻量级线程,通过信道(channel)进行通信,简单的说就是多个协程之间通信的管道,解决多个协程访问共享内存时的冲突问题。

3. go:nil 值的使用:

(1) 布尔值、数值、字符串都有自己的初始值,不能赋值为nil。其他的 map、slice等类型,可以赋初始值为nil

(2) nil的类型不是固定的,要根据上下文推断。不同类型的nil值大小不一样。

(3) 对nil值的channel、map、slice、array 进行range操作是合法的,但有的是0次,有的会永远阻塞。

4. go dpdk无锁队列

(1) 特点: 环形无锁; 多个生产者和消费者同时出入队。

(2) 实现 多生产者同时出入队 相关的概念:

a:原子操作 处理atomic_t类型的数据

b:CAS操作,输入新值和旧值,不一样的话才交换成新值,一样的话不交换

c:自旋锁,不睡眠的方式等着获得锁

(3) 实现 多生产者同时出入队 相关的方案 的关键点:

 假设两个core同时进行生产,core1 进行交换值的时候,core1交换成功。而 core2 触发自旋锁等待,获得锁后进行交换,发现已经被core1交换了,再往下一个位置生产。

其实原则上也是通过锁实现,但是用的是最小幅度的锁,针对atomic_t类型的锁,也就是原子操作。所以可称为无锁队列。

5. 什么称为redis 大key?

(1) String 类型的值大于 10 KB;

(2) Hash、List、Set、ZSet 类型的元素的个数超过 5000个;

6. 怎么删除大key避免卡顿?

1. 分批次 del 命令 删除:各个类型的元素的删除方式不一样,具体可以看面试官:Redis 大 key 要如何处理?

2. 异步删除:用 unlink 命令代替 del 来删除

相关文章:深入理解DPDK-同步互斥机制详解 - 知乎

深入理解高并发技术 dpdk 无锁队列

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值