Redis सर्वर और कई ग्राहकों के साथ जोड़ने

वोट
0

मैं एक ही Redis सर्वर एक Windows 2008 मशीन पर चल रहा है। एकाधिक वेबसाइट है कि प्रत्येक का उपयोग किया है BasicRedisClientManager.अनुप्रयोग शुरू पर एक बार सेटअप यह उदाहरण है और में में सेट Application[]की दुकान। इस तरह यह सभी उपयोगकर्ताओं भर में पुन: प्रयोज्य है। समस्या मैं कर रहा हूँ कि एक साइट के लिए एक समर्पित सर्वर पर चलाता है और अन्य साइटों जहां Redis सर्वर चल रहा है स्थानीय होस्ट पर चलाया जाता है। एक उत्पादन है और दूसरों को नए काम / प्रदर्शन के लिए परीक्षण स्थान नहीं है। दूरस्थ क्लाइंट बस ठीक काम करता है, लेकिन स्थानीय होस्ट ग्राहकों सर्वर के साथ संवाद नहीं है और एक बंद / मृत अवस्था में होने लगते हैं। जब मैं साइट चलाने मैं सिर्फ एक ढेर अतिप्रवाह हो और साइट पर ही recycles। नीचे सेटअप मैं का कुछ नमूना कोड है। मैं देख रहा हूँ ग्राहकों के बीच ताले बनाने पर कुछ जानकारी नहीं है लेकिन मुझे यकीन है कि अगर यह मार्ग मैं लेने की जरूरत है नहीं कर रहा हूँ।

http://www.servicestack.net/docs/redis-client/distributed-locking-with-redis

नमूना कोड:

    protected override void Application_Start(object sender, EventArgs e)
    {
        /*
         * Create basicRedisClientManager for redis.
         */
        var redisHost = ConfigurationManager.AppSettings[RedisHostIp].ToString();
        BasicRedisClientManager basicRedisClientManager = new BasicRedisClientManager(redisHost);
        Application[BasicRedisClientManager] = basicRedisClientManager;

     .....
    }

तो फिर यह वर्ग निर्माता में फायदा नहीं है

    public CacheManager()
    {
        if (Application[BasicRedisClientManager] != null)
        {
            /*local variable*/
            basicRedisClientManager = (BasicRedisClientManager)Application[BasicRedisClientManager];
        }
    }

वर्ग के भीतर प्रबंधक का उपयोग कर।

        if (basicRedisClientManager != null)
        {
            using (var redisClient = (RedisClient)basicRedisClientManager.GetClient())
            {
                if (!saveToInProcOnly && redisClient != null)
                {
                    using (var redis = redisClient.GetTypedClient<T>())
                    {
                        redis.SetEntry(key, value);
                    }
                }
            }
        }

यह तर्क सभी साइटों में एक ही है।

किसी भी अंतर्दृष्टि बहुत सराहना कर रहा है!

13/06/2012 को 01:26
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
1

मैं नहीं जानता कि BasicRedisClientManagerलेकिन मैं आप का उपयोग करने की सलाह देते BookSleeve क्लाइंट लाइब्रेरी। के संबंध पुन: उपयोग के संबंध में, इस सवाल का जवाब पुन: उपयोग नहीं है। यही कारण है, कनेक्शन, हर बार जब आप इसकी आवश्यकता है पुन: बनाने के रूप में BookSleeve के लेखक की सिफारिश की गई है।

कृपया देखें इस सवाल और स्वीकार किए जाते हैं जवाब बुलेट प्रूफ Redis ग्राहक कनेक्शन बनाने के लिए कैसे को देखने के लिए।

13/06/2012 को 18:24
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more