2017-11-14 6 views
0

memcached 서버에 다른 네임 스페이스로 연결되는 두 개의 응용 프로그램이 있습니다. 예를 들어 "admin"과 "users"라고합니다.Rails/Dalli : 다른 네임 스페이스의 프래그먼트 만료

이제는 관리자 응용 프로그램의 "사용자"네임 스페이스에서 일부 조각이 만료되기를 원합니다.

참고 : 여기에서 찾은 다른 여러 가지 질문/답변에 따라 캐싱/만료 동작이 아닙니다. "abcde"와 같은 키를 만료시키고 싶습니다. 모든 종류의 것들, AR 결과, JSON 등을 캐시합니다. 같은

이미 시도 가지 :

Rails.cache.delete("abcd") 
Rails.cache.delete("users/abcd") 
Rails.cache.delete("https://stackoverflow.com/users/abcd") 

다이제스트는 꺼져 있습니다.

어떻게하면됩니까?

답변

0

레일스 캐시가 네임 스페이스로 구성되어 있으면 해당 네임 스페이스가 캐시 키 앞에 자동으로 추가됩니다. 따라서 Rails.cache.write("FOO", "BAR") 키가 실제로 $NAMESPACE:FOO이됩니다. 키는 문자열이며 파일 시스템이나 멋진 것 (AFAIK)처럼 탐색 할 수 없습니다.

여러분의 최선의 선택은 다른 네임 스페이스에 대한 dalli 클라이언트의 인스턴스를 인스턴스화하여 키를 삭제하는 것입니다.