ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingติดปัญหาเรื่อง Memcache
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: ติดปัญหาเรื่อง Memcache  (อ่าน 1149 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
@@@
Administrator
สมุนแก๊งเสียว
*

พลังน้ำใจ: 33
ออฟไลน์ ออฟไลน์

กระทู้: 634



ดูรายละเอียด เว็บไซต์
« เมื่อ: 14 มิถุนายน 2013, 11:54:10 »

รนกวนสอบถามผู้รู้ทุกท่าน

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

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

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

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

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

บันทึกการเข้า

รับซื้อเว็บ 100uip ต่อวันขึ้นไป EA Forex
@@@
Administrator
สมุนแก๊งเสียว
*

พลังน้ำใจ: 33
ออฟไลน์ ออฟไลน์

กระทู้: 634



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 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)
บันทึกการเข้า

รับซื้อเว็บ 100uip ต่อวันขึ้นไป EA Forex
chadchai
Newbie
*

พลังน้ำใจ: 7
ออฟไลน์ ออฟไลน์

กระทู้: 57



ดูรายละเอียด
« ตอบ #2 เมื่อ: 14 มิถุนายน 2013, 16:37:35 »

telnet 192.168.1.3 11211 ขึ้นว่าอะไร
บันทึกการเข้า
MapTwoZa
ก๊วนเสียว
*

พลังน้ำใจ: 75
ออฟไลน์ ออฟไลน์

กระทู้: 366



ดูรายละเอียด
« ตอบ #3 เมื่อ: 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
บันทึกการเข้า

Good code quality Developer Cheesy
@@@
Administrator
สมุนแก๊งเสียว
*

พลังน้ำใจ: 33
ออฟไลน์ ออฟไลน์

กระทู้: 634



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 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 นี้ต้องถามทาง ผู้ดูแลอีกทีคับ

บันทึกการเข้า

รับซื้อเว็บ 100uip ต่อวันขึ้นไป EA Forex
หน้า: [1]   ขึ้นบน
พิมพ์