- 博客(4)
- 收藏
- 关注
原创 一致性非读定读和一致性锁定读
一致性非锁定读指Innodb存储引擎通过行多版本控制的方式来读取当前执行时间数据库中的行的数据。如果读取的行正在执行DELETE和UPDATE操作,这是读取操作不会因此去等待行上锁的释放。相反地,InnoDB存储引擎会去读取行的一个快照数据。快照数据时指该行的之前版本的数据。多版本并发控制:对于一个行记录的数据,可能快照数据不止一个,称为这种技术为行多版本技术。带来的并发控制,称为多版本并发控制(MVCC)在事务隔离级别Read Committed和Repeatable Read下,Innodb存
2021-08-18 23:35:43
177
原创 Redis 删除策略
一、Redis中的数据特征Redis是一种内存级数据库,所有数据均存放在内存中,内存中的数据可以通过TTL指令获取其状态XX :具有时效性的数据-1 :永久有效的数据-2 :已经过期的数据 或 被删除的数据 或 未定义的数据二、数据删除策略数据删除策略的目标:在内存占用与CPU占用之间寻找一种平衡,顾此失彼都会造成整体redis性能的下降,甚至引发服务器宕机或内存泄露1. 定时删除创建一个定时器,当key设置有过期时间,且过期时间到达时,由定时器任务立即执行对键的删除操作优点:节约内
2021-08-18 13:39:01
127
原创 阻塞队列使用
BlockingQueue接口当使用的传输通道为空时消费者无法取出产品,此时消费者可以进行等待,直到传输通道非空。当使用的传输通道为满时生产者无法放入新产品,此时生产者可以进行等待,直到传输通道有空间可以放。从传输通道中存入一个产品或者取出一个产品时,相应的线程可能因为传输通道中没有产品或者其存储孔家按已满时而被阻塞(暂停),则称这种传输通道为阻塞式。内部实现细节可参考以下链接:BlockingQueue及其实现【Java并发之】BlockingQueueArrayBlockingQueue
2021-08-02 11:04:38
89
原创 Object.notify()/notifyAll()的选用
实现通知比较流行保守的方法是优先使用notifyAll()保障正确性Object.notify()可能导致信号丢失的正确性问题,Object.notifyAll()虽然效率不高(把不需要唤醒的等待线程给唤醒),但是保证正确性方面有保障。只有在以下两个条件都满足的情况下使用notify()代替notifyAll()一次通知仅需要唤醒至多一个线程相应对象上的所有等待线程都是同质等待线程(同质等待线程:指线程使用同一个保护条件,并且这些线程在Objec.wait()调用返回之后的处理逻辑一致)..
2021-08-01 10:18:24
159
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人