ThaiSEOBoard.com

พัฒนาเว็บไซต์ => Programming => ข้อความที่เริ่มโดย: @@@ ที่ 14 มิถุนายน 2013, 11:54:10



หัวข้อ: ติดปัญหาเรื่อง Memcache
เริ่มหัวข้อโดย: @@@ ที่ 14 มิถุนายน 2013, 11:54:10
รนกวนสอบถามผู้รู้ทุกท่าน

ผมมี server 1 และ server 2 ทั้งคู่ลง Memcache ไว้

แล้วปกติเวลาจะใช้งานผมเรียกใช้งานภายใน server เดียวกัน จะเรียกใช้ เป็น $memcache->connect("localhost",11211);

แล้ว ที่นี้มีปัญหาอยู่ว่าถ้าต้องการให้ server 1 สามารถเรียกใช้ ข้อมูลทีอยู่ Memcache ของ server 2

หรือ ต้องการให้ server2 สามารถเรียกใช้ ข้อมูลทีอยู่ Memcache ของ server1

จะทำได้อย่างไรครับ



หัวข้อ: Re: ติดปัญหาเรื่อง Memcache
เริ่มหัวข้อโดย: @@@ ที่ 14 มิถุนายน 2013, 16:08:50
server สอง ตัวนี้ไม่ได้ทำ Load Balance กันครับ

function addServer ของ Memcache ก็ลองใช้งานแล้ว

/** connect to server **/
$memcache = new Memcache;
$memcache->addServer('192.168.1.2', 11211);
$memcache->addServer('192.168.1.3', 11211);
$memcache->connect("192.168.1.3",11211);

ได้ error ดังนี้ครับ
Warning: Memcache::connect() [memcache.connect]: Can't connect to 192.168.1.3:11211, Connection refused (111)


หัวข้อ: Re: ติดปัญหาเรื่อง Memcache
เริ่มหัวข้อโดย: chadchai ที่ 14 มิถุนายน 2013, 16:37:35
telnet 192.168.1.3 11211 ขึ้นว่าอะไร


หัวข้อ: Re: ติดปัญหาเรื่อง Memcache
เริ่มหัวข้อโดย: MapTwoZa ที่ 14 มิถุนายน 2013, 16:42:31
ทำไม ใช้ทั้ง addServer() และ connect() ครับ
-.-

เอาเรื่อง 2 server ก่อนละกัน
multiple instance เอาครับ แต่ว่าจะทำให้ลด performance นิดหน่อยนะ

โค๊ด:
$memcache1 = \new Memcache;
$memcache1->connect("192.168.1.2",11211);
$memcache2 = \new Memcache;
$memcache2->connect("192.168.1.3",11211);

ส่วนถ้าใช้ add server จะใช้ในกรณีกัน server ล่มครับ
เช่น add ไป 2 ตัว ตัวที่ 1 ล่ม มันก็ยังทำงานได้ปรกติครับ ให้เปรียบมันก็น่าจะเหมือน raid1
addServer กับ connect มันทำงานเหมือนกันนะ แต่ addServer จะเป็น high level add ได้หลายตัว
ส่วน connect จะเป็น low level connect ได้ตัวเดียว

ส่วนเรื่อง connect ไม่ได้นี่ ถ้ามั่นใจว่า memcache service start แล้ว
น่าจะเป็นที่ network เรื่อง port/firewall พวกนั้น

ผิดถูกยังไงขออภัยด้วยนะครับ   :wanwan031:


หัวข้อ: Re: ติดปัญหาเรื่อง Memcache
เริ่มหัวข้อโดย: @@@ ที่ 14 มิถุนายน 2013, 17:43:48
ทำไม ใช้ทั้ง addServer() และ connect() ครับ
-.-

เอาเรื่อง 2 server ก่อนละกัน
multiple instance เอาครับ แต่ว่าจะทำให้ลด performance นิดหน่อยนะ

โค๊ด:
$memcache1 = \new Memcache;
$memcache1->connect("192.168.1.2",11211);
$memcache2 = \new Memcache;
$memcache2->connect("192.168.1.3",11211);



ส่วนถ้าใช้ add server จะใช้ในกรณีกัน server ล่มครับ
เช่น add ไป 2 ตัว ตัวที่ 1 ล่ม มันก็ยังทำงานได้ปรกติครับ ให้เปรียบมันก็น่าจะเหมือน raid1
addServer กับ connect มันทำงานเหมือนกันนะ แต่ addServer จะเป็น high level add ได้หลายตัว
ส่วน connect จะเป็น low level connect ได้ตัวเดียว

ส่วนเรื่อง connect ไม่ได้นี่ ถ้ามั่นใจว่า memcache service start แล้ว
น่าจะเป็นที่ network เรื่อง port/firewall พวกนั้น

ผิดถูกยังไงขออภัยด้วยนะครับ   :wanwan031:

ปกติ server 192.168.1.3 ใช้ memcache ได้ครับ ถ้าใช้ การรัน code ในเครื่อง 192.168.1.3

ส่วนเรื่อง  port/firewall นี้ต้องถามทาง ผู้ดูแลอีกทีคับ