2017-05-11 4 views
0

memcache에서 자주 사용하는 키를 업데이트하는 더 좋은 방법은 set() 또는 replace()입니까?memcache : 키 업데이트 전략?

관측 : 나는 세트를 관찰 대 퇴거에 영향을 교체 한

. 어느 것이이 2 가지 작업에 대한 메모리 관리 지점과 다른 점을 확인할 수 있습니까?

답변

0

관찰에서 언급했듯이 set() 연산을 사용하여 알려진 키를 업데이트 할 때 퇴거가 발생합니다. 우리가 업데이트하는 빈도는 실제로 예측할 수없고 매우 높습니다. 경합하는 리소스에 대한 잠금 구현과 관련시킬 수 있습니다.

매우 자주 업데이트되는 일부 키를 사용하여 실험을 실행 한 후. 우리는 replace()가 임의의 축출을 발생시키지 않는 것을 관찰했지만 set()은 축출을 유발합니다.

은 memcache에 문서 herehere를 통과 한 후, 관계없이,

  1. 세트() 작업이 항상 메모리 할당을 호출하는 결론에 도달했습니다. 이로 인해이 키가 할당 된 슬래브에 강제 퇴거가 발생합니다.
  2. replace() 작업이 메모리 할당을 수행하지 않습니다.

그러므로 '자주 사용하는 키 업데이트'문제에 대해서는 적어도 우리의 사용 사례에 대해서는 대체 옵션이 더 좋습니다. 그것은 퇴거를 피하는 것을 도왔습니다.