<
从版本< 19.1 >
xu yang编辑
在2022/04/27 13:56上
到版本
xu yang编辑
在2022/04/27 13:57上
>
修改评论 该版本没有评论

Summary

Details

Page properties
Content
... ... @@ -127,8 +127,7 @@
127 127  
128 128  
129 129  再看异步删除dbAsyncDelete的策略
130 -{{plantuml}}
131 -@startuml
130 +{{plantuml}}@startuml
132 132  start
133 133  
134 134  
... ... @@ -138,13 +138,22 @@
138 138  
139 139  :调用dictUnlink方法在dict上删除key指针;
140 140  note left
141 -这里dictUnlink方法可以看作是上面dictDelete的一个同名方法,区别在于,dictDelete会明确告诉redis尽可能free掉key和value占用的空间(如果key和value没用被共享的情况下),
142 -而dictUnlink则只移除dict上的key即可,一定不要free具体的内存,并把对应的entry(key->value的封装,类似于java中的map.entry对象)返回
140 +这里dictUnlink方法可以看作是上面dictDelete的一个同名方法,
141 +区别在于,
142 +dictDelete会明确告诉redis尽可能free掉key和value占用的空间(如果key和value没用被共享的情况下),
143 +
144 +而dictUnlink则只移除dict上的key即可,
145 +一定不要free具体的内存,
146 +并把对应的entry(key->value的封装,类似于java中的map.entry对象)返回
143 143  endnote
144 144  
145 145  :获取entry中value占用的大小;
146 146  if(如果value的占用空间过多)then(yes)
147 -:由于清理起来会耗用很长时间,这里会创建一个删除任务,本质是将要删除的entry扔到一个清理队列中,后台线程定期对这个队列中的数据清理;
151 +:由于清理起来会耗用很长时间,
152 +
153 +这里会创建一个删除任务,
154 +本质是将要删除的entry扔到一个清理队列中,
155 +后台线程定期对这个队列中的数据清理;
148 148  :将entry指针指向空;
149 149  endif
150 150  
... ... @@ -158,7 +158,4 @@
158 158  
159 159  
160 160  end
161 -@enduml
162 -{{/plantuml}}
163 -
164 -
169 +@enduml{{/plantuml}}