2013-01-07 11 views
8

मैं कैसे hedis का उपयोग कर यूनिक्स डोमेन सॉकेट के माध्यम से एक redis सर्वर से कनेक्ट करने के लिए देख रहा हूँ, के रूप में hackage पेज में विज्ञापित:हास्केल में हेडिस का उपयोग करके यूनिक्स डोमेन सॉकेट के माध्यम से एक रेडिस सर्वर से कैसे कनेक्ट करें?

टीसीपी के माध्यम से

कनेक्ट या यूनिक्स डोमेन सॉकेट:
TCP सॉकेट हैं एक Redis सर्वर से कनेक्ट करने के लिए डिफ़ॉल्ट तरीका । एक ही मशीन पर किसी सर्वर से कनेक्शन के लिए, यूनिक्स डोमेन सॉकेट मानक टीसीपी कनेक्शन से अधिक प्रदर्शन प्रदान करते हैं।

ConnectInfo के निर्माताओं, साथ ही defaultConnectInfo से ऐसा प्रतीत होता है कि हम, क्योंकि यह टाइप PortID जो UnixSocket नाम के एक निर्माता है है connectPort में भरना चाहिए। लेकिन यह केवल पता चलता UnixSocket एक String है, प्रारूप की जानकारी के बिना, आदि

तो connectPort को भरने के लिए यूनिक्स डोमेन सॉकेट के माध्यम से कनेक्ट करने के लिए? धन्यवाद।


अद्यतन: मैं इसे बाहर की कोशिश की और पाया यह है कि मुश्किल नहीं है। नीचे मेरी हैलो दुनिया है।

{-# LANGUAGE OverloadedStrings #-} 
import Control.Monad.Trans 
import Database.Redis 

myConnectInfo :: ConnectInfo 
myConnectInfo = defaultConnectInfo { connectPort = UnixSocket "/tmp/redis.sock" } 

main :: IO() 
main = do 
    conn <- connect myConnectInfo 
    runRedis conn $ do 
     set "hello" "hello" 
     set "world" "world" 
     hello <- get "hello" 
     world <- get "world" 
     liftIO $ print (hello,world) 

उत्तर

7

मैं एक Haskell उपयोगकर्ता बिल्कुल नहीं कर रहा हूँ, और मैं इसे परीक्षण नहीं कर सकते, लेकिन मैं कहूंगा कि तुम सिर्फ इस स्ट्रिंग में सॉकेट फ़ाइल का रास्ता प्रदान करने के लिए है।

बजाय:

connectPort   = PortNumber 6379 

आप होगा:

connectPort   = UnixSocket "/tmp/redis.sock" 
बेशक

, /tmp/redis.sock निम्नलिखित मानकों का उपयोग कर सर्वर साइड Redis विन्यास फाइल में घोषित किया जाना चाहिए:

# Specify the path for the unix socket that will be used to listen for 
# incoming connections. There is no default, so Redis will not listen 
# on a unix socket when not specified. 
# 
unixsocket /tmp/redis.sock 
unixsocketperm 755 

कृपया डिफ़ॉल्ट रूप से नोट करें, यूनिक्स डोमेन सॉकेट पैरामीटर पर टिप्पणी की गई है।

संबंधित मुद्दे