मैंने केवल मेरे डीबी के रूप में रेडिस का उपयोग किया, और मेरा ग्राहक ServiceStack.Redis है। बात यह है कि, यदि दो समवर्ती अनुरोध को एक कुंजी को अपडेट करने की आवश्यकता है, तो यह दौड़ की स्थिति हो सकती है। उदाहरण के लिएरेडिस का उपयोग करके दौड़ की स्थिति को कैसे रोक सकता हूं?
एक:
- पूर्णांक एक = जाओ कुंजी
- बहु
- एक = एक - 100
- कुंजी एक
- EXEC सेट
बी:
- पूर्णांक एक = जाओ कुंजी
- बहु
- एक = एक - 100
- सेट कुंजी एक
- EXEC
अगर मूल "कुंजी" 1000 है। यदि स्परेशन ए और बी धारावाहिक हैं ized, "कुंजी" के इन दो परिचालनों का सही परिणाम 800 होगा। लेकिन यदि ए और बी एक ही समय में होता है। ए प्रतिबद्ध करने से पहले, ऑपरेशन बी को "कुंजी" से 1000 मान मिलता है, और 900 को "कुंजी" पर सेट करता है। यही वह नहीं है जो मैं चाहता हूं। मैं इस तरह की दौड़ की स्थिति को कैसे रोक सकता हूं, "वॉच" का उपयोग कैसे कर सकता हूं?
हां, वॉच का उपयोग करें। –