stackexhange.redis C#을 사용하여 각기 다른 만료 시간을 가진 N 개의 (독립적 인) 항목을 자주 redis 캐시에 추가해야 클라이언트 측에서 최소 시간이 있고 서버 측에서 최소 & 블로킹이 발생합니다. Redis 서버는 초당 수백 건의 요청을받을 것이므로 시간을 낭비하고 싶지는 않습니다.stackexchange redis 캐시 성능
나는 here 문서를 읽고 대답은 here입니다. 이 작업을 수행하는 단일 메서드를 찾을 수 없습니다. 다른 옵션 고려 :
- 트랜잭션 사용 - 서버 측에서 모든 작업을 차단합니다. 따라서 올바른 해결책이 아니어야합니다.
- 일괄 처리 사용 - 모든 일괄 작업이 완료 될 때까지 클라이언트 쪽에서 모든 작업을 차단합니다. 이것은 올바른 해결책이되어서는 안됩니다.
- 파이프 라이닝 사용 - 클라이언트 측과 서버 측에서 어떤 작업도 차단하지 않습니다. 그러나 다중 요청 (N 미만의 패킷)은 더 많은 네트워크를 소비하지만 클라이언트 측에서 메모리 소비를 증가시켜 대기 시간을 유발할 수 있습니다.
- Fire and forget 사용 - 클라이언트 측과 서버 측에서 어떤 작업도 차단하지 않습니다. 그러나 더 많은 네트워크 대역폭을 소비하지만 클라이언트 쪽에서는 메모리 소비가없는 여러 요청 (파이프 라이닝보다 많은 패킷)을 보냅니다.
어떤 접근 방식이 가장 좋을까요? 경쟁 오퍼레이션은 2 개의 삽입을 의미하고 하나의 삽입과 삽입은 서로 다른 키에 액세스 할 수 있지만 함께 갈 수 없다고 가정했습니다. 나는이 점을 바르게 알고 있습니까? 그렇지 않다면 무엇을 의미합니까?