Show last authors
author | version | line-number | content |
---|---|---|---|
1 | get命令本质是调用了lookupKeyRead这个底层方法, | ||
2 | lookupKeyRead方法如下: | ||
3 | |||
4 | {{plantuml}} | ||
5 | @startuml | ||
6 | start | ||
7 | |||
8 | |||
9 | : lookupKeyReadWithFlags; | ||
10 | |||
11 | |||
12 | end | ||
13 | @enduml | ||
14 | {{/plantuml}} | ||
15 | |||
16 | |||
17 | lookupKeyReadWithFlags方法如下: | ||
18 | |||
19 | {{plantuml}} | ||
20 | @startuml | ||
21 | start | ||
22 | |||
23 | if(调用expireIfNeeded方法判断key是否过期)then(1:代表过期) | ||
24 | if(当前环境为主节点)then(yes) | ||
25 | :返回null; | ||
26 | stop | ||
27 | endif | ||
28 | |||
29 | if(当前环境为从节点,并且命令为读的时候,那说明key过期是安全的)then(yes) | ||
30 | :返回null; | ||
31 | stop | ||
32 | endif | ||
33 | endif | ||
34 | |||
35 | :调用lookupKey方法,查询value的值; | ||
36 | if(返回值为空)then(yes) | ||
37 | :缓存命中+1; | ||
38 | else(no) | ||
39 | :缓存非命中+1; | ||
40 | endif | ||
41 | |||
42 | :返回查询的结果; | ||
43 | |||
44 | end | ||
45 | @enduml | ||
46 | {{/plantuml}} |