ฉันจะทำให้ Memcached ทำงานบนระบบ Windows (x64) 64 บิตได้หรือไม่


87

ไม่มีใครรู้ว่าถ้า , เมื่อไหร่หรือวิธีการที่ฉันจะได้รับmemcachedทำงานบนสภาพแวดล้อม 64bit Windows?

ฉันกำลังตั้งค่าโซลูชันโฮสติ้งใหม่และต้องการใช้ระบบปฏิบัติการ 64 บิตเป็นอย่างมากและเนื่องจากเป็นโซลูชัน ASP.Net MVC ที่มี SQL Server DB ระบบปฏิบัติการจะเป็น Windows Server 2003 หรือ (หวังว่า!) 2008

ฉันรู้ว่าสิ่งนี้อาจทำให้เกิดการถกเถียงเกี่ยวกับ 32 บิตกับ 64 บิตบนเซิร์ฟเวอร์ แต่สมมติว่าความชอบของฉันคือ 64 บิตและฉันมีเหตุผลที่ดีมาก

จนถึงตอนนี้ผมได้พยายามจำนวนของตัวเลือกและพบบิตของความช่วยเหลือที่เกี่ยวข้องกับการได้รับการขึ้นนี้บนเครื่อง 32bit (และประสบความสำเร็จก็อาจเพิ่ม) แต่ตั้งแต่เดิมพอร์ตของ Windowsเป็น Win32 เฉพาะนี้คือแทบจะไม่ไปช่วย เมื่อติดตั้งเป็นบริการบน x64 นอกจากนี้ยังมีการพึ่งพาตัวปลดปล่อยซึ่งฉันสามารถรับเวอร์ชันที่คอมไพล์ Win32

ฉันสงสัยว่าการโหลดทั้งหมดนี้ใน C ++ และการกด "คอมไพล์" (สำหรับ 64 บิต) จะไม่ได้ผลอย่างน้อยเพราะความแตกต่างที่ซับซ้อนในสถาปัตยกรรม 32 และ 64 บิต แต่ฉันสงสัยว่ามีใครกำลังทำสิ่งนี้อยู่หรือไม่ พื้นดิน? น่าเสียดายที่ความเชี่ยวชาญของฉันอยู่ในรหัสที่มีการจัดการ (C #) เท่านั้นไม่เช่นนั้นฉันจะพยายามทำสิ่งนี้ด้วยตัวเอง แต่ฉันไม่อยากเชื่อเลยว่าฉันเป็นผู้ชายคนเดียวที่พยายามทำให้memcachedทำงานบนเซิร์ฟเวอร์ Windows 64 บิต .. .. ฉัน?


อัปเดต

ใช่ฉันกลัวว่าฉันยังคงมองหาคำตอบสำหรับสิ่งนี้ - ความพยายามทั้งหมดของฉัน (ด้วยทักษะ C ++ ที่น่าสมเพชของฉัน) ในการสร้างโครงสร้างที่มั่นคงล้มเหลว - ฉันทิ้งเซิร์ฟเวอร์หนึ่งเครื่องและ VM 3 เครื่องเพิ่งลองใช้ตอนนี้ฉัน หันไปหาผู้เชี่ยวชาญที่แท้จริง มีใครวางแผนจะย้ายข้อมูลนี้ไปที่ 64 บิต หรือคุณแนะนำให้ฉันใช้ MS Velocity แทนจริงๆ? ฉันสั่นเมื่อคิด


อัปเดต: @Lars - ฉันใช้ Enyim จริง - มันดีมาก แต่สิ่งที่คุณอ้างถึงคือไคลเอนต์มากกว่าส่วนเซิร์ฟเวอร์

@DannySmurf - ฉันสามารถติดตั้งเป็นบริการบนระบบปฏิบัติการ 32 บิตเท่านั้น ระบบปฏิบัติการ 64 บิตปฏิเสธการติดตั้งบริการ Win32 นี้ แน่นอนใช่รหัส Win32 จำนวนมากทำงานได้อย่างราบรื่นบนสถาปัตยกรรม x64 ดังนั้นคุณสามารถเรียกใช้แอป 32 บิต (เช่น Office เป็นต้น) หรือเกมบน Vista / XP 64 เป็นต้น แต่สิ่งนี้ไม่ได้แปลโดยตรงเมื่อพูดถึงบริการ ฉันไม่ใช่ผู้เชี่ยวชาญฉันสงสัยว่ามันเกี่ยวข้องกับการซิงค์หรือเหตุการณ์ที่บริการต่างๆจำเป็นต้องสมัครสมาชิกและฉันสงสัยว่า 64 และ 32 เล่นได้ไม่ดี ฉันยินดีที่จะได้รับการแก้ไขในส่วนนี้ แต่เพื่อตอบคำถามของคุณ - ใช่ฉันได้ลองแล้ว

@OJ - ขอบคุณมากสำหรับการตอบกลับตรงไปตรงมา ฉันคิดมาก แต่ไม่แน่ใจว่ามีใครแนะนำหรือเคยไปเส้นทางนี้แล้ว บางทีเมื่อ StackOverflow ถ่ายทอดสดผู้คนจำนวนมากจะตอบกลับและแจ้งให้เราทราบว่านี่เป็นสิ่งที่ถูกตรวจสอบหรือไม่และแม้ว่าฉันจะพยายามรวบรวมมันด้วยตัวเอง แต่ฉันก็ไม่สามารถ "วางใจ" (ด้วยระดับประสบการณ์ C ++ ของฉัน) ได้ จะให้ความน่าเชื่อถือ "ระดับองค์กร" ในองค์ประกอบที่สำคัญเช่นนี้ของโซลูชันที่ปรับขนาดได้ขนาดใหญ่ ฉันคิดว่ามันจะต้องมีการแทรกแซงทางการศึกษามากกว่าวิธีการทดลองที่ไม่ถูกฆ่าเชื้อของฉันก่อนที่ฉันจะมั่นใจได้ การกำกับดูแลเล็กน้อยในส่วนของฉันอาจทำให้ไซต์ล่มได้ เอาล่ะ ... ไว้คราวหน้า


ข้อผิดพลาดใดเกิดขึ้นเมื่อพยายามลงทะเบียนบริการ ฉันติดตั้งบริการหลายอย่างที่พัฒนาในสภาพแวดล้อม 32 บิตที่ 64 บิตและไม่เคยมีปัญหา ลองเปิดบรรทัดคำสั่งเป็น 32 บิตและลงทะเบียนบริการโดยใช้โปรแกรม sc.exe
lsalamon

คำตอบ:


52

ห้องปฏิบัติการ North Scale ได้เปิดตัวการสร้าง memcached 1.4.4 สำหรับ Windows x64:

http://blog.couchbase.com/memcached-windows-64-bit-pre-release-available

http://labs.northscale.com/memcached-packages/

อัปเดต: พวกเขาเพิ่งเปิดตัวเซิร์ฟเวอร์ Memcached - ยังฟรี แต่ปรับปรุง distro ด้วยการจัดกลุ่มผู้ดูแลระบบบนเว็บ / UI สถิติเป็นต้น (ฉันไม่เกี่ยวข้องกับพวกเขา แต่อย่างใด) ตรวจสอบได้ที่http://northscale.com/ products / memcached.htmlและดาวน์โหลดได้ที่: http://www.northscale.com/download.php?a=d

อัปเดต 2: NorthScale Memcached ไม่สามารถดาวน์โหลดแบบสแตนด์อโลนได้อีกต่อไป ตอนนี้พวกเขาได้ทำให้มันเป็นส่วนหนึ่งของข้อเสนอ No-SQL DB เชิงพาณิชย์ที่เรียกว่า Membase สามารถกำหนดค่าให้ทำงานในโหมด Memcached เท่านั้น (เช่นไม่มีความคงอยู่) และมีเวอร์ชันฟรี 100% ด้วย ตรวจสอบได้ที่นี่: http://www.membase.org/downloads

อัปเดต 3: MemBase นอนกับ CouchDB และผลิตผลิตภัณฑ์ไฮบริดที่เรียกว่า CouchBase พวกเขายังคงเสนอ "ชุมชน" เวอร์ชันฟรีที่http://www.couchbase.com/download


3
ฉันไม่มีตัวแทนในการแก้ไข แต่ลิงก์แรกที่นี่ไม่ถูกต้องในขณะนี้ ต้องใช้ยัติภังค์ระหว่าง 64 ถึงบิต: blog.northscale.com/northscale-blog/2009/12/…
Maggie

22
ลิงค์ดาวน์โหลดยังใช้งานได้: s3.amazonaws.com/downloads.northscale.com/…
IEnumerator

ฉันจะกำหนดค่าเซิร์ฟเวอร์ memcached โดยใช้บรรทัดคำสั่งสำหรับ Windows ได้อย่างไร ฉันลองลิงค์codeproject.com/Articles/96698/… แต่ไม่สามารถกำหนดค่าได้
เรนทร์

ปัจจุบันด้วยหน้าเว็บดาวน์โหลด Northscale ไม่สามารถใช้งานได้อีกต่อไปฉันระบุว่าหน้านี้: programmersought.com/article/55551624598หมายเหตุ: ต้องติดตั้งเวอร์ชัน 1.4.5 เป็นงานไม่ใช่เป็นบริการ (เหมือนที่เคยเป็น)
aldemarcalazans

25

เพื่อให้ผู้คนรู้ว่าเวอร์ชัน 32 บิตและ 64 บิตสร้างโดยคนดีจากเมมเบรน / couchbase / สิ่งที่ยังคงมีอยู่ URL ของบล็อกได้เปลี่ยนไป

ไบนารี 32 บิตของ memcached 1.4.4 เป็นบริการ Windows:

http://blog.couchbase.com/memcached-144-windows-32-bit-binary-now-available

http://s3.amazonaws.com/downloads.northscale.com/memcached-win32-1.4.4-14.zip

ไบนารี 64 บิตของ memcached 1.4.4 เป็นบริการ Windows:

http://blog.couchbase.com/memcached-windows-64-bit-pre-release-available

http://s3.amazonaws.com/downloads.northscale.com/memcached-win64-1.4.4-14.zip

เวอร์ชัน 64 บิตมีสถานะการออนไลน์ที่ไม่ถูกต้อง

ดังนั้นคุณอาจต้องการไบนารีนี้เป็น 1.4.2 แทน:

http://www.urielkatz.com/archive/detail/memcached-64-bit-windows/

เวอร์ชัน 32 บิตที่มาพร้อมกับ MemCacheDManager ยังรองรับการทำงานบน Windows 2000 (ไม่มี IPv6):

http://allegiance.chi-town.com/MemCacheDManager.aspx http://allegiance.chi-town.com/Download.aspx?dl=Releases/MemCacheDManager_1_0_3_0.msi&rurl=MemCacheDManager.aspx

ในการแกะ msi:

msiexec / a Releases_MemCacheDManager_1_0_3_0.msi / qb TARGETDIR = c: \ memcached


Couchbase ดูเหมือนว่าตอนนี้จะผลักดันแนวทางที่แตกต่างcouchbase.com/memcached
Mike Gifford

6

Memcached 1.4.5 ไบนารีสำหรับ win x64 สามารถพบได้ที่นี่: http://downloads.northscale.com/memcached-1.4.5-amd64.zip

อีกทางเลือกหนึ่งคือการติดตั้ง Couchbase Server 1.8.0 x64 จากที่นี่: http://www.couchbase.com/download memcached ที่แถมมานั้นดูเหมือนจะเป็นเวอร์ชัน 1.7.1.1 (ดูเหมือนจะเป็นเวอร์ชันภายในฉันไม่สามารถบอกได้ว่า คือตัวจริง)

สำหรับการเรียกใช้ memcached เป็นบริการบทช่วยสอนนี้อาจเพียงพอ:

http://www.richardnichols.net/2010/08/install-memcached-on-windows-server/


6

ไบนารีที่ทันสมัย

NorthScale มีเวอร์ชันเก่าจริงๆ (ใหม่ล่าสุดคือ 1.4.5 ซึ่งเป็นช่วงเดือนเมษายน 2010) แต่มีผู้ชายคนหนึ่งที่เสนอไบนารี Memcached 64 บิตสำหรับ Windows ที่คอมไพล์โดยใช้ Cygwin (แต่ไม่จำเป็นต้องติดตั้ง) ในGitHub ที่เก็บ GitHub ของเขา co.th

ยกตัวอย่างเช่นไบนารีของรุ่นส่วนใหญ่ได้รับการปล่อยตัวเมื่อเร็ว ๆ นี้ ( ณ วันที่เขียนคำตอบนี้) 1.5.16 อยู่ที่นี่ มีทั้งเวอร์ชัน 32 และ 64 บิต

Memcached เป็นบริการ Windows

หากคุณต้องการติดตั้งเป็นบริการ Windows คุณสามารถใช้ตัวอย่างเช่น Open-source Non-Sucking Service Manager :

nssm install memcached c:\path\to\memcached.exe
nssm start memcached

ดูรายละเอียดในเอกสารประกอบ


3

โดยส่วนตัวแล้วฉันรู้สึกว่าคุณต้องคอมไพล์แอปพลิเคชันใหม่โดยใช้คอมไพเลอร์ 64 บิต (เห็นได้ชัดในเครื่อง 64 บิต) เพื่อให้ได้รับประโยชน์สูงสุดจาก Memcached บนแพลตฟอร์ม 64 บิต นี่อาจไม่ใช่เรื่องง่ายขึ้นอยู่กับรหัส หากเขียนโดยคำนึงถึงการพกพา 64 บิตก็สามารถคอมไพล์ใหม่ได้ หากยังไม่เป็นเช่นนั้นคุณก็สามารถทำการแพตช์ได้เล็กน้อยก่อนที่จะสร้าง .. จากนั้นคุณจะต้องตรวจสอบว่าคุณไม่ได้ทำอะไรเสียหาย!

ฉันไม่คิดว่าคุณจะประเมินความแตกต่างระหว่าง 32 และ 64 บิตมากเกินไป ข้อผิดพลาดที่พบบ่อยคือการสมมติว่างานนั้นเป็นการคอมไพล์ใหม่ง่ายๆเมื่อในความเป็นจริงมันไม่ใช่ มีปัญหาในการพกพามากกว่าที่คนส่วนใหญ่ตระหนัก เพียงเพราะแอปพลิเคชันสร้างขึ้นและคุณลงเอยด้วยไบนารีก็ไม่ได้หมายความว่าไบนารีจะทำงานอย่างที่ควรจะเป็น โดยเฉพาะอย่างยิ่งเมื่อมันอาจโต้ตอบกับโค้ด 32 บิตอื่น ๆ

ต้องบอกว่ามันคุ้มค่าที่จะหมุน!

โชคดี. ไชโย!


@ ลาร์ส: ฉันขอแนะนำให้อ่านคำถามก่อนที่จะลองตอบ

@John Sably & @DannySmurf: เนื่องจากลักษณะของ Memcached และสิ่งที่มุ่งหวังที่จะบรรลุคุณคงไม่ต้องการรันเวอร์ชัน 32 บิตบนเครื่อง 64 บิตใช่หรือไม่? หากคุณมีเครื่องที่ใช้งานได้ 64 บิตคุณควรใช้เวอร์ชัน 64 บิตเพื่อใช้ประโยชน์สูงสุดจากคุณลักษณะของฮาร์ดแวร์


3

ฉันมี memcached-1.2.1 สำหรับ win32 ที่ดาวน์โหลดมาจากที่นี่: http://jehiah.cz/projects/memcached-win32/ (แต่ตอนนี้ด้วยเหตุผลบางประการทำให้ลิงก์เสีย)

นี่คือวิธีที่ฉันจัดการเพื่อเรียกใช้ memcached สำหรับ Win32 บน Windows Server 2008 R2 64 บิต memcached.exe -> คุณสมบัติ -> ความเข้ากันได้ -> เรียกใช้โปรแกรมนี้ในโหมดความเข้ากันได้สำหรับ: Windows XP (SP 3) สังเกตว่าผู้ใช้ Uriel Katz กล่าวถึงในการสนทนานี้ว่าวิธีนี้ จำกัด เฉพาะหน่วยความจำ 2GB ในการใช้งาน


2

ฉันเพิ่งค้นหา memcached ในระบบ Windows 64 บิตและพบสิ่งนี้ จนถึงขณะนี้ยังไม่มีเวอร์ชัน memcached ของ Win64 แต่ฉันเพิ่งเริ่ม memcached.exe ด้วยคำสั่งที่เหมาะสมผ่าน cmd และมันก็ทำงานได้ดี ฉันใช้ Windows Vista 64 บิตไม่ทราบว่ามีความแตกต่างระหว่าง Vista และเวอร์ชันเซิร์ฟเวอร์หรือไม่

ขอแสดงความนับถือ Fleshgrinder


ขอบคุณสำหรับสิ่งนี้ - การเริ่มต้นจาก cmd ไม่ใช่ปัญหา - การติดตั้งเป็นบริการเป็นปัญหา ขอแสดงความนับถือ Rob G
RobertTheGrey

1

เพื่อนCodeplexเป็นเพื่อนของคุณ -> ลองดูพอร์ตนี้ เคยมีรุ่น 64 บิต แต่คุณสามารถดาวน์โหลดล่าสุดและรวบรวมสำหรับ 64 บิต (ค่อนข้างง่าย) หรือตรวจสอบรุ่นก่อนหน้า


1
สวัสดี Pure.Krome ขอบคุณสำหรับข้อมูล แต่ฉันได้เห็นหน้านี้และฉันไม่เคยเห็นเวอร์ชันเซิร์ฟเวอร์ 64 บิต และไม่ - ตามคำตอบของ OJ ข้างต้นคุณไม่สามารถ "คอมไพล์" เป็น 64 บิตได้อย่างง่ายดายเว้นแต่โค้ดจะถูกเขียนด้วยวิธีนั้นและการทำงานกับหน่วยความจำก็เป็นจุดที่ไม่ดีในการทดสอบทฤษฎีนั้น ...
RobertTheGrey

อืม. อ่า -> x64 บิตเป็นเวอร์ชันเบต้าดังนั้นจึงถูกแทนที่ด้วยการอัปเดตล่าสุด พบได้ที่นี่: codeplex.com/memcachedproviders/Release/…
Pure.Krome

1

เวอร์ชัน 32 บิตทำงานบน 64 บิตผ่าน WOW64 แต่กระบวนการยัง จำกัด อยู่ที่ 2GB ด้วยเวอร์ชัน 64 บิตคุณสามารถก้าวข้ามสิ่งนั้นไปได้มากกว่าเครื่องเดียว


0

คุณแน่ใจหรือว่าเวอร์ชัน 32 บิตไม่ได้ทำงานบน Windows 64 บิตโดยไม่มีการปรับเปลี่ยน ส่วนใหญ่ทำ

ไม่สำเร็จคุณได้ลองคอมไพล์เป็น 64 บิตแล้วหรือยัง? การสแกนสั้น ๆ ของ Google Groups บางส่วนและอื่น ๆ ที่มีคนถามคำถามเดียวกันนี้แสดงให้เห็นว่านั่นอาจเป็นวิธีแก้ปัญหานี้ ฉันคิดว่าคุณอาจประเมินความแตกต่างระหว่าง Windows 32 บิตและ 64 บิตสูงเกินไป (อย่างน้อยที่สุดเท่าที่การรวบรวมแอปพลิเคชันเนทีฟเป็นไปได้)


0

FYI ฉันไม่สามารถรับเวอร์ชัน 64 บิต (จากที่นี่http://labs.northscale.com/memcached-packages/ ) เพื่อติดตั้งเป็นบริการจนกว่าฉันจะเรียกใช้ memcached ในฐานะผู้ดูแลระบบ

ฉันไปที่คุณสมบัติของไฟล์ปฏิบัติการจากนั้นแท็บความเข้ากันได้และเลือก "เรียกใช้โปรแกรมนี้ในฐานะผู้ดูแลระบบ" (มีวิธีอื่นอีกมากมายในการทำเช่นนี้ แต่ดูเหมือนจะง่ายที่สุด)

ในที่สุดฉันก็สามารถรันได้สำเร็จ: memcached -d install

อย่าลืมเริ่มบริการหลังจากติดตั้งด้วยนะครับ :)


0

คุณสามารถเรียกใช้กระบวนการ memcached 32 บิตหลายอินสแตนซ์ในกล่องเดียวได้เสมอเพื่อให้เครื่องนั้นให้บริการพื้นที่ memcache ทั้งหมด> 2GB


0

หากสามารถช่วยได้ฉันได้ทำ wrapper ตามการรวบรวม memcached 1.4.5 64 บิตที่พบในหน้านี้ ( ลิงก์โดยตรงไปยังไบนารี NorthScale )

เป็นบริการ windows และทำงานได้ดีอย่างสมบูรณ์ในสภาพแวดล้อมการผลิต:
https://github.com/eric-b/MemcachedService64

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.