एक एकल जेडिस उदाहरण थ्रेडसेफ नहीं है क्योंकि इसे इस तरह लागू किया गया था। पुस्तकालय के लेखक ने यही निर्णय लिया है।
आप बाइनरी जेडिस के स्रोत कोड की जांच कर सकते हैं जो कि जेडिस का एक सुपर प्रकार है https://github.com/xetorthio/jedis/blob/master/src/main/java/redis/clients/jedis/BinaryJedis.java
उदाहरण के लिए ये पंक्तियाँ:
public Transaction multi() {
client.multi();
client.getOne(); // expected OK
transaction = new Transaction(client);
return transaction;
}
जैसा कि आप देख सकते हैं कि जेडिस इंस्टेंस का उपयोग करके सभी थ्रेड्स के लिए लेन-देन फ़ील्ड साझा किया जाता है और इस पद्धति में आरंभ किया जाता है। बाद में इस लेन-देन का उपयोग अन्य तरीकों से किया जा सकता है। कल्पना कीजिए कि दो धागे एक ही समय में लेनदेन संबंधी संचालन करते हैं। परिणाम यह हो सकता है कि एक थ्रेड द्वारा बनाए गए लेन-देन को अनजाने में दूसरे थ्रेड द्वारा एक्सेस किया जाता है। इस मामले में लेन-देन क्षेत्र साझा राज्य पहुंच है जिसमें सिंक्रनाइज़ नहीं है। यह जेडिस को गैर-थ्रेडसेफ बनाता है।
लेखक ने जेडिस को गैर-थ्रेडसेफ और जेडिसपूल थ्रेडसेफ बनाने का फैसला ग्राहकों के लिए लचीलापन प्रदान करने के लिए किया हो सकता है ताकि यदि आपके पास एकल-थ्रेडेड वातावरण है तो आप जेडिस का उपयोग कर सकते हैं और बेहतर प्रदर्शन प्राप्त कर सकते हैं या यदि आपके पास एक बहुप्रचारित वातावरण है जिसका आप उपयोग कर सकते हैं जेडिसपूल और थ्रेड सुरक्षा प्राप्त करें।