秒杀的流程
程序处理过程
消息数据库处理过程
redis和mysql事务的区别
aof和rdb怎么选择
redis怎么实习分布式锁
实习分布式锁需要满足一下的四点
- 互斥行 只要一个客户端能拿到锁
- 解铃还须系铃人,只要同一个客户端才能去开自己的锁
- 不能发生死锁
- 只要还有节点活着 只要大部分的Redis节点正常运行,客户端就可以加锁和解锁。
加锁
String result = jedis.set(lockKey, requestId, SET_IF_NOT_EXIST, SET_WITH_EXPIRE_TIME, expireTime);
解锁的时候会加上lua代码我为了保证原子性
MySQL中存整形有哪些数据类型?
tiny small medium int big
mysql 怎么强制使用某个索引
如何使用前缀索引
mysql的realy log
主要问的就是主从复制 io线程 sql线程 比binlog 多了个master info 记录上一次读到的位置
mysql 引擎的区别
事外锁查全空
select count(*)时InnoDB和MyISAM分别是怎么处理的?
myisam是把表的总行数记录再磁盘上的,可以直接返回 所以比inbodb快, 但是如果加上where就不一定了 原因竟然是mvcc 导致行数不一致,无法记录
mysql 字段string 和int
是string 用int 可以查 是int 输入 ‘1dsf’ 后面的不算 只有1能算
事务的隔离级别
redis 的5种数据结构
string list set zset 元素是唯一的 但是分数不是唯一的 hash
b树和b+树
首先的知识点是 磁盘 是由轨道+扇形区号 +偏移量 可以找到任何byte 1000条数据 每块512字节 如果没有索引 就要把所有的数据都加载到内存中 是很慢 且浪费, 所有花点小成本空间去简历索引,这样每次进入内存的空间就小了,然而索引随着时间的增加 也会变很多,索引需要多级索引,而二叉平衡树 一个节点只能存储一个key 不行 ,M way tree 诞生,但是必须要有规则 不然很浪费, 然后就有了b树 每个key有自己的cp和rp,b+树 只有叶节点有rp,但是叶节点是有非叶节点的备份的,然后加上一个指向兄弟节点的指针。