【pygraph源码有多少】【mono源码阅读】【dedecms生活源码】看门狗3源码_看门狗3源代码
1.《看门狗军团》版本都有什么区别?大家详细说一下呗!看门
2.Proteusçµåçµè·¯è®¾è®¡å仿ççç®å½
3.面试官问:Redis 狗源分布式锁如何自动续期?
《看门狗军团》版本都有什么区别?大家详细说一下呗!
标准版:包含游戏本体。码看门狗码黄金版:包含游戏本体和游戏季票。源代终极版:包含黄金版及终极版数字内容,看门包括能够加速获得经验及游戏内现金的狗源pygraph源码有多少4周VIP 特权。典藏版:包含终极版内容及LED的码看门狗码“Ded”王冠面具复制品,独家铁盒,源代一套三张贴纸以及一张的看门宣传海报,设计灵感均来源于游戏。狗源还有一个可在游戏中立即解锁的码看门狗码面具。
看门狗:军团(Watch Dogs: Legion)是源代由育碧公司开发的一款第三人称射击角色扮演游戏,游戏于年月日登陆PC(Epic/UPlay)、看门PS4、狗源XBOXONE、码看门狗码XBOX SERIES X|S、PS5、mono源码阅读STADIA 。
年月5日,国外勒索软件发布了《看门狗:军团》的源代码。
本作设定在一个虚构的未来伦敦。伦敦在不久的将来面临衰落:人民被一个能够监听一切的部门所压迫。
腐败的私营军事企业控制着街道,强大的犯罪集团正在掠夺最脆弱的民众。在《看门狗:军团》中,dedecms生活源码玩家的任务是组建抵抗力量反抗独裁政权 。
游戏预计将于年月日正式发售。
Proteusçµåçµè·¯è®¾è®¡å仿ççç®å½
第1ç« Proteusæ¦è¿° 11.1 Proteusåå² 1
1.2 Proteusåºç¨é¢å 1
1.3 Proteus VSMç»ä»¶ 2
1.4 Proteusçå¯å¨åéåº 3
1.5 Proteus设计æµç¨ 5
1.5.1 èªé¡¶åä¸è®¾è®¡ 5
1.5.2 èªä¸èä¸è®¾è®¡ 5
1.6 Proteuså®è£ æ¹æ³ 6
第2ç« Proteus ISISåºæ¬æä½ 9
2.1 Proteus ISISå·¥ä½çé¢ 9
2.1.1 ç¼è¾çªå£ 9
2.1.2 é¢è§çªå£
2.1.3 对象éæ©å¨
2.1.4 èåæ ä¸ä¸»å·¥å ·æ
2.1.5 ç¶ææ
2.1.6 å·¥å ·ç®±
2.1.7 æ¹åå·¥å ·æ å仿çæé®
2.2 ç¼è¾ç¯å¢è®¾ç½®
2.2.1 模æ¿è®¾ç½®
2.2.2 å¾è¡¨è®¾ç½®
2.2.3 å¾å½¢è®¾ç½®
2.2.4 ææ¬è®¾ç½®
2.2.5 å¾å½¢ææ¬è®¾ç½®
2.2.6 交ç¹è®¾ç½®
2.3 ç³»ç»åæ°è®¾ç½®
2.3.1 å ä»¶æ¸ å设置
2.3.2 ç¯å¢è®¾ç½®
2.3.3 è·¯å¾è®¾ç½®
2.3.4 å±æ§å®ä¹è®¾ç½®
2.3.5 å¾çº¸å¤§å°è®¾ç½®
2.3.6 ææ¬ç¼è¾é项设置
2.3.7 å¿«æ·é®è®¾ç½®
2.3.8 å¨ç»é项设置
2.3.9 仿çé项设置
å®ä¾2-1 åçå¾ç»å¶å®ä¾
第3ç« Proteus ISISçµè·¯ç»å¶
3.1 ç»å¾æ¨¡å¼åå½ä»¤
3.1.1 Componentï¼å 件ï¼æ¨¡å¼
3.1.2 Junction dotï¼èç¹ï¼æ¨¡å¼
3.1.3 Wire labelï¼è¿çº¿æ å·ï¼æ¨¡å¼
3.1.4 Text scriptsï¼æåèæ¬ï¼æ¨¡å¼
3.1.5 æ»çº¿ï¼Busesï¼æ¨¡å¼
3.1.6 Subcircuitï¼åçµè·¯ï¼æ¨¡å¼
3.1.7 Terminalsï¼ç»ç«¯ï¼æ¨¡å¼
3.1.8 Device Pinsï¼å¨ä»¶å¼èï¼æ¨¡å¼
3.1.9 2Då¾å½¢å·¥å ·
3.2 导线çæä½
3.2.1 两对象è¿çº¿
3.2.2 è¿æ¥ç¹
3.2.3 éå¤å¸çº¿
3.2.4 æå¨è¿çº¿
3.2.5 移走èç¹
3.3 对象çæä½
3.3.1 éä¸å¯¹è±¡
3.3.2 æ¾ç½®å¯¹è±¡
3.3.3 å é¤å¯¹è±¡
3.3.4 å¤å¶å¯¹è±¡
3.3.5 æå¨å¯¹è±¡
3.3.6 è°æ´å¯¹è±¡
3.3.7 è°æ´æå
3.3.8 ç¼è¾å¯¹è±¡
3.4 ç»å¶çµè·¯å¾è¿é¶
3.4.1 æ¿æ¢å 件
3.4.2 éèå¼è
3.4.3 设置头æ¡
3.4.4 设置è¿çº¿å¤è§
3.5 å ¸åå®ä¾
å®ä¾3-1 ç»å¶å ±åå°ææ¾å¤§çµè·¯
å®ä¾3-2 JK触åå¨ç»æçä¸ä½äºè¿å¶å
æ¥è®¡æ°å¨çç»å¶ä¸æµè¯
å®ä¾3-3 KEYPADçç»å¶å仿ç
å®ä¾3-4 åçæºæ§ä¸²è¡è¾å ¥å¹¶è¡è¾åº
移ä½å¯åå¨ç»å¶ç»ä¹
第4ç« ProteusISISåæå仿çå·¥å ·
4.1 èæ仪å¨
4.2 æ¢é
4.3 å¾è¡¨
4.4 æ¿å±æº
4.4.1 ç´æµä¿¡å·åçå¨DC设置
4.4.2 å¹ åº¦ãé¢çãç¸ä½å¯æ§çæ£å¼¦
æ³¢åçå¨SINE设置
4.4.3 模æèå²åçå¨PULSE设置
4.4.4 ææ°èå²åçå¨EXP设置
4.4.5 åé¢çè°é¢æ³¢ä¿¡å·åçå¨SFFM
设置
4.4.6 PWLINå段线æ§èå²ä¿¡å·åç
å¨è®¾ç½®
4.4.7 FILEä¿¡å·åçå¨è®¾ç½®
4.4.8 é³é¢ä¿¡å·åçå¨AUDIO设置
4.4.9 åå¨ææ°åèå²åçå¨DPULSE
设置
4.4. æ°åå边沿信å·åçå¨DEDGE
设置
4.4. æ°åå稳æé»è¾çµå¹³åçå¨
DSTATE设置
4.4. æ°åæ¶éä¿¡å·åçå¨DCLOCK
设置
4.4. æ°å模å¼ä¿¡å·åçå¨DPATTERN
设置
4.5 å ¸åå®ä¾
å®ä¾4-1 å ±åå°ææ¾å¤§çµè·¯åæ
å®ä¾4-2 ADCçµè·¯æ¶åºåæ
å®ä¾4-3 å ±åå°æåºç¨ä½é滤波çµè·¯
åæ
第5ç« æ¨¡æçµè·¯è®¾è®¡å仿ç
5.1 è¿ç®æ¾å¤§å¨åºæ¬åºç¨çµè·¯
5.1.1 åç¸æ¾å¤§çµè·¯
5.1.2 åç¸æ¾å¤§çµè·¯
5.1.3 å·®å¨æ¾å¤§çµè·¯
5.1.4 å æ³è¿ç®çµè·¯
5.1.5 åæ³è¿ç®çµè·¯
5.1.6 å¾®åè¿ç®çµè·¯
5.1.7 积åè¿ç®çµè·¯
å®ä¾5-1 PIDæ§å¶çµè·¯åæ
5.2 æµéæ¾å¤§çµè·¯ä¸é离çµè·¯
5.2.1 æµéæ¾å¤§å¨
å®ä¾5-2 æµéæ¾å¤§å¨æµæ¸©çµè·¯åæ
5.2.2 é离æ¾å¤§å¨
å®ä¾5-3 模æä¿¡å·é离æ¾å¤§çµè·¯
åæ
5.3 ä¿¡å·è½¬æ¢çµè·¯
5.3.1 çµåæ¯è¾çµè·¯
5.3.2 çµå/é¢ç转æ¢çµè·¯
5.3.3 é¢ç/çµå转æ¢çµè·¯
5.3.4 çµåâçµæµè½¬æ¢çµè·¯
5.3.5 çµæµâçµå转æ¢çµè·¯
5.4 移ç¸çµè·¯ä¸ç¸ææ£æ³¢çµè·¯
5.4.1 移ç¸çµè·¯
5.4.2 ç¸ææ£æ³¢çµè·¯
å®ä¾5-4 ç¸ææ£æ³¢å¨é´ç¸ç¹æ§åæ
5.5 ä¿¡å·ç»åçµè·¯
å®ä¾5-5 çµé»é¾äºåé¢ç»åçµè·¯
åæ
5.6 ææºæ»¤æ³¢çµè·¯
5.6.1 ä½é滤波çµè·¯
5.6.2 é«é滤波çµè·¯
5.6.3 带é滤波çµè·¯
5.6.4 带é»æ»¤æ³¢çµè·¯
5.7 ä¿¡å·è°å¶/解è°
5.7.1 è°å¹ çµè·¯
5.7.2 è°é¢çµè·¯
5.7.3 è°ç¸çµè·¯
5.8 å½æ°åççµè·¯
5.8.1 æ£å¼¦æ³¢ä¿¡å·åççµè·¯
å®ä¾5-6 çµå®¹ä¸ç¹å¼æ¯è¡çµè·¯åæ
5.8.2 ç©å½¢æ³¢ä¿¡å·åççµè·¯
5.8.3 å 空æ¯å¯è°çç©å½¢æ³¢åç
çµè·¯
5.8.4 ä¸è§æ³¢ä¿¡å·åççµè·¯
5.8.5 é¯é½¿æ³¢ä¿¡å·åççµè·¯
å®ä¾5-7 éæå½æ°åçå¨ICL
çµè·¯åæ
第6ç« æ°åçµè·¯è®¾è®¡å仿ç
6.1 åºæ¬åºç¨çµè·¯
6.1.1 å稳æ触åå¨
6.1.2 å¯åå¨/移ä½å¯åå¨
å®ä¾6-1 LS 8ä½åå移ä½å¯åå¨
åæ
6.1.3 ç¼ç çµè·¯
6.1.4 è¯ç çµè·¯
å®ä¾6-2 CDè¯ç æ¾ç¤ºçµè·¯
åæ
6.1.5 ç®æ¯é»è¾çµè·¯
6.1.6 å¤è·¯éæ©å¨
6.1.7 æ°æ®åé å¨
6.1.8 å /å计æ°å¨
6.2 èå²çµè·¯
6.2.1 å®æ¶å¨ææçå¤è°æ¯è¡å¨
å®ä¾6-3 å 空æ¯ä¸é¢çåå¯è°çå¤
è°æ¯è¡å¨åæ
6.2.2 ç©å½¢èå²çæ´å½¢
6.3 çµå®¹æµé仪
6.3.1 çµå®¹æµé仪设计åç
6.3.2 çµå®¹æµé仪çµè·¯è®¾è®¡
6.4 å¤è·¯çµåæ¢çå¨
6.4.1 ç®å8è·¯çµåæ¢çå¨
6.4.2 8路带æ°åæ¾ç¤ºçµåæ¢çå¨
第7ç« åçæºä»¿ç
7.1 Proteusä¸åçæºä»¿ç
7.1.1 å建æºä»£ç æ件
7.1.2 ç¼è¾æºä»£ç ç¨åº
7.1.3 çæç®æ 代ç
7.1.4 代ç çæå·¥å ·
7.1.5 å®ä¹ç¬¬ä¸æ¹æºä»£ç ç¼è¾å¨
7.1.6 使ç¨ç¬¬ä¸æ¹IDE
7.1.7 åæ¥è°è¯
7.1.8 æç¹è°è¯
7.1.9 MULTI-CPUè°è¯
7.1. å¼¹åºå¼çªå£
7.2 WinAVRç¼è¯å¨
7.2.1 WinAVRç¼è¯å¨ç®ä»
7.2.2 å®è£ WinAVRç¼è¯å¨
7.2.3 WinAVRç使ç¨
7.3 ATMEGAåçæºæ¦è¿°
7.3.1 AVRç³»ååçæºç¹ç¹
7.3.2 ATmegaæ»ä½ç»æ
7.4 I/O端å£åå ¶ç¬¬äºåè½
7.4.1 端å£Aç第äºåè½
7.4.2 端å£Bç第äºåè½
7.4.3 端å£Cç第äºåè½
7.4.4 端å£Dç第äºåè½
å®ä¾7-1 使ç¨Proteus仿çé®çæ§
LED
7.5 ä¸æå¤ç
7.5.1 ATmegaä¸ææº
7.5.2 ç¸å ³I/Oå¯åå¨
7.5.3 æå¤ç
å®ä¾7-2 使ç¨Proteus仿çä¸æå¤éç
é®ç
7.6 ADC模æè¾å ¥æ¥å£
7.6.1 ADCç¹ç¹
7.6.2 ADCçå·¥ä½æ¹å¼
7.6.3 ADCé¢åé¢å¨
7.6.4 ADCçåªå£°æå¶
7.6.5 ä¸ADCæå ³çI/Oå¯åå¨
7.6.6 ADCåªå£°æ¶é¤ææ¯
å®ä¾7-3 使ç¨Proteus仿çç®æçµ
é计
7.7 éç¨ä¸²è¡æ¥å£UART
7.7.1 æ°æ®ä¼ é
7.7.2 æ°æ®æ¥æ¶
7.7.3 ä¸UARTç¸å ³çå¯åå¨
å®ä¾7-4 使ç¨Proteus仿ç以æ¥è¯¢æ¹å¼
ä¸èæç»ç«¯ååçæºä¹é´äºç¸
éä¿¡
å®ä¾7-5 使ç¨Proteus仿çå©ç¨æ åI/O
æµä¸èæç»ç«¯éä¿¡è°è¯
7.8 å®æ¶å¨/计æ°å¨
7.8.1 T/C0
7.8.2 T/C1
7.8.3 T/C2
7.8.4 å®æ¶å¨/计æ°å¨çé¢åé¢å¨
å®ä¾7-6 使ç¨Proteus仿çT/C0å®æ¶
éªçLEDç¯
å®ä¾7-7 使ç¨Proteus仿çT/C2产ç
ä¿¡å·T/C1è¿è¡æè·
å®ä¾7-8 使ç¨Proteus仿çT/C1产ç
PWMä¿¡å·æ§çµæº
å®ä¾7-9 使ç¨Proteus仿ççé¨ç
å®æ¶å¨
7.9 åæ¥ä¸²è¡æ¥å£SPI
7.9.1 SPIç¹æ§
7.9.2 SPIå·¥ä½æ¨¡å¼
7.9.3 SPIæ°æ®æ¨¡å¼
7.9.4 ä¸SPIç¸å ³çå¯åå¨
å®ä¾7- 使ç¨Proteus仿ç端å£
æ©å±
7. 两线串è¡æ¥å£TWI
7..1 TWIç¹æ§
7..2 TWIçæ»çº¿ä»²è£
7..3 TWIç使ç¨
7..4 ä¸TWIç¸å ³çå¯åå¨
å®ä¾7- 使ç¨Proteus仿çåè¯ç
TWIéä¿¡
7. 综å仿ç
å®ä¾7- 使ç¨Proteus仿çDSB
æµæ¸©è®¡
å®ä¾7- 使ç¨Proteus仿ççµå
ä¸å¹´å
å®ä¾7- 使ç¨Proteus仿çDS
å®æ¶æ¶é
第8ç« PCBå¸æ¿
8.1 PCBæ¦è¿°
8.2 Proteus ARESçå·¥ä½çé¢
8.2.1 ç¼è¾çªå£
8.2.2 é¢è§çªå£
8.2.3 对象éæ©å¨
8.2.4 èåæ ä¸ä¸»å·¥å ·æ
8.2.5 ç¶ææ
8.2.6 å·¥å ·ç®±
8.3 ARESç³»ç»è®¾ç½®
8.3.1 é¢è²è®¾ç½®
8.3.2 é»è®¤è§å设置
8.3.3 ç¯å¢è®¾ç½®
8.3.4 éæ©è¿æ»¤å¨è®¾ç½®
8.3.5 å¿«æ·é®è®¾ç½®
8.3.6 ç½æ ¼è®¾ç½®
8.3.7 使ç¨æ¿å±è®¾ç½®
8.3.8 æ¿å±å¯¹è®¾ç½®
8.3.9 è·¯å¾è®¾ç½®
8.3. 模æ¿è®¾ç½®
8.3. å·¥ä½åºå设置
å®ä¾8-1 PCBå¸æ¿æµç¨
åèæç®
åçå¾ï¼é¡¾åæä¹å°±æ¯è¡¨ç¤ºçµè·¯æ¿ä¸åå¨ä»¶ä¹é´è¿æ¥åççå¾è¡¨ãå¨æ¹æ¡å¼åçæ£åç 究ä¸ï¼åçå¾çä½ç¨æ¯é常éè¦çï¼è对åçå¾çæå ³ä¹å ³ä¹æ´ä¸ªé¡¹ç®çè´¨éçè³çå½ãç±åçå¾å»¶ä¼¸ä¸å»ä¼æ¶åå°PCB layoutï¼ä¹å°±æ¯PCBå¸çº¿ï¼å½ç¶è¿ç§å¸çº¿æ¯åºäºåçå¾æ¥åæçï¼éè¿å¯¹åçå¾çåæ以åçµè·¯æ¿å ¶ä»æ¡ä»¶çéå¶ï¼è®¾è®¡è å¾ä»¥ç¡®å®å¨ä»¶çä½ç½®ä»¥åçµè·¯æ¿çå±æ°çã
åºå°é夫å®å¾Kirchhoff lawsæ¯çµè·¯ä¸çµååçµæµæéµå¾ªçåºæ¬è§å¾ï¼æ¯åæå计ç®è¾ä¸ºå¤æçµè·¯çåºç¡ï¼å¹´ç±å¾·å½ç©çå¦å®¶G.R.åºå°é夫ï¼Gustav Robert Kirchhoffï¼ï½ï¼æåºãå®æ¢å¯ä»¥ç¨äºç´æµçµè·¯çåæï¼ä¹å¯ä»¥ç¨äºäº¤æµçµè·¯çåæï¼è¿å¯ä»¥ç¨äºå«æçµåå 件çé线æ§çµè·¯çåæãè¿ç¨åºå°é夫å®å¾è¿è¡çµè·¯åææ¶ï¼ä» ä¸çµè·¯çè¿æ¥æ¹å¼æå ³ï¼èä¸ææ该çµè·¯çå å¨ä»¶å ·æä»ä¹æ ·çæ§è´¨æ å ³ãåºå°é夫å®å¾å æ¬çµæµå®å¾ï¼KCL)åçµåå®å¾(KVL)ï¼åè åºç¨äºçµè·¯ä¸çèç¹èåè åºç¨äºçµè·¯ä¸çåè·¯ã
å¤ç¨è¡¨
multimeter
ç±ç£çµç³»çµè¡¨çæµéæºæä¸æ´æµå¨ææçå¤åè½ãå¤éç¨çæºæ¢°å¼æ示çµè¡¨ï¼è§çµæµè¡¨ï¼ãå¯ç¨ä»¥æµé交ãç´æµçµåï¼äº¤ãç´æµçµæµï¼çµé»ãå称ä¸ç¨è¡¨æç¹ç¨è¡¨ãæäºå¤ç¨è¡¨è¿å ·ææµéçµå®¹ãçµæçåè½ã
å¤ç¨è¡¨ä¸»è¦ç±ç£çµç³»çµè¡¨çæµéæºæãæµéçµè·¯å转æ¢å¼å ³
ç»æãå ¶ä¸ï¼è½¬æ¢å¼å ³æ¯å¤ç¨è¡¨éæ©ä¸åæµéåè½åä¸åéç¨æ¶çåæ¢å 件ã
满å转çµæµçº¦ä¸º ï½Î¼Aãå¤ç¨è¡¨ç¨ä¸ä¸ªæµéæºææ¥æµéå¤ç§çµå¦éï¼åå ·æå 个éç¨ãå ¶å·¥ä½åçæ¯:éè¿æµéçµè·¯çåæ¢,å°è¢«æµéåæ¢æç£çµç³»æµéæºæè½å¤æ¥åçç´æµçµæµãä¾å¦æµéæºæç»ååæµå¨ï¼è§çµæµè¡¨ï¼åååå¨ï¼å°±å½¢ææµéç´æµçµæµåçµåçå¤éç¨ç´æµçµè¡¨ãç£çµç³»æµéæºæä¸åæ³¢æå ¨æ³¢æ´æµå¨ç»ææ´æµå¼çµè¡¨çæµéæºæï¼åç»ååæµå¨åååå¨ï¼å°±å½¢ææµé交æµçµæµåçµåçå¤éç¨äº¤æµçµè¡¨ãå¤ç¨è¡¨å è¿å¸¦æçµæ± ï¼å½è¢«æµçµé»å¼ä¸åæ¶ï¼çµæ± 使æµéæºæå éè¿ä¸åæ°å¼ççµæµï¼ä»èåæ åºä¸åç被æµçµé»å¼ã转æ¢å¼å ³æ¯å¤ç¨è¡¨éæ©ä¸åæµéåè½åä¸åéç¨æ¶çåæ¢å 件ã
ç¨å¤ç¨è¡¨æµéçµé»çåççµè·¯è§å¾ãå½è¢«æµçµé»Rx=0æ¶,çµè·¯ä¸ççµæµæ大,è°èR使æµéæºææéçå转è§ä¸ºæ»¡å»åº¦å¼ï¼æ¤æ¶çµè·¯ä¸ççµæµå¼I0=E/Rãå½è¢«æµçµé»Rxå¢å¤§æ¶,çµæµI=E/(R+Rx)éæ¸åå°ï¼æéçå转è§ä¹åå°ãå æ¤å¤ç¨è¡¨è¡¨çä¸ççµé»å¼æ å°ºæ¯ååçï¼èä¸å»åº¦ä¸ååãè¥è¢«æµçµé»Rx=Rï¼åçµæµI=I0/2ï¼æéå转è§ä¸ºæ»¡å转è§çä¸åãå æ¤å»åº¦ä¸ç¹å¤ææ ççµé»å¼(称为ä¸å¼çµé»)å³ä¸ºè¯¥éç¨ä¸å¤ç¨è¡¨çå é»å¼ãé常çµé»å¼æ å°ºçææ读æ°èå´ä¸º0.1ï½åä¸å¼çµé»å¼ã
éççµåææ¯çä¸æè¿æ¥ï¼å¤ç¨è¡¨æ£éæ¥åæ°åå¼æ¹ååå±ã
面试官问:Redis 分布式锁如何自动续期?
资深面试官:你们项目中的分布式锁是如何实现的?
老任:我们使用Redis的set命令,这个命令有nx和ex选项。
资深面试官:如果锁到期了,业务还没结束,如何进行自动续期呢?
老任:这个......面试官,您刚才问的棋牌牛牛源码是什么问题来着?
资深面试官:你们项目中分布式锁是如何实现的。
老任:我们直接使用了Redisson中提供的分布式锁。
资深面试官:你给我出去!!!
Redisson的看门狗机制
在使用Redis分布式锁时,为了防止异常情况下锁无法正常释放,我们通常会为锁设置一个超时时间。
但这也带来一个问题:如果设置了超时时间,问道网关源码而业务逻辑在规定时间内还没执行完,锁就会被释放,这可能会引起新的问题。
因此,Redisson提供了监控锁的看门狗机制。在锁关闭前,看门狗会不断延长锁的超时时间。默认情况下,看门狗的锁超时时间lockWatchdogTimeout是秒,这个值是可以设置的。
源码解析
现在让我们进入tryLock()方法,查看一下实现源码。在该方法中调用tryAcquire()方法。
tryAcquire()方法中调用tryAcquireAsync()方法。
tryAcquireAsync()方法中,如果leaseTime小于等于0,调用scheduleExpirationRenewal方法进行续期。
从该方法中看到,leaseTime表示锁的超时时间。如果调用tryLock方法加锁时设置了该参数,看门狗机制就不会生效。
scheduleExpirationRenewal()方法中调用了renewExpiration()方法。
renewExpiration()方法中启用了一个timeout定时器,internalLockLeaseTime的1/3时间去执行续期操作,续期的方法是renewExpirationAsync()。
renewExpirationAsync的方法内容如下,里面定义了lua脚本,如果key存在,执行pexpire命令进行续期操作。
以上就是Redis分布式锁到期后,业务还没结束时的自动续期解决方案,现在你明白了么?