วิธีการติดตั้งและกำหนดค่า Memcached บน AlmaLinux 8


memcached ใช้เพื่อเพิ่มความเร็วเว็บไซต์ที่ขับเคลื่อนด้วยฐานข้อมูลแบบไดนามิกโดยแคชข้อมูลและวัตถุใน RAM ซึ่งจะช่วยลดจำนวนครั้งที่ต้องอ่านแหล่งข้อมูลภายนอก ซึ่งจะช่วยลดค่าใช้จ่ายและเพิ่มความเร็วในการตอบสนอง ซอฟต์แวร์แคชหน่วยความจำเป็นโปรเจ็กต์โอเพนซอร์ซฟรีที่ทุกคนสามารถใช้ได้

ในตอนท้ายของการสอน คุณจะรู้ วิธีการติดตั้งและกำหนดค่า Memcached บนระบบปฏิบัติการ Almalinux 8 ของคุณ

เบื้องต้น

  • ระบบปฏิบัติการที่แนะนำ: AlmaLinux 8.
  • บัญชีผู้ใช้: บัญชีผู้ใช้งานกับ สิทธิพิเศษ sudo or การเข้าถึงรูท (คำสั่ง su).

กำลังอัปเดตระบบปฏิบัติการ

อัปเดตของคุณ โซลลินุกซ์ ระบบปฏิบัติการเพื่อให้แน่ใจว่าแพ็คเกจที่มีอยู่ทั้งหมดเป็นปัจจุบัน:

sudo dnf upgrade --refresh -y

บทช่วยสอนจะใช้ the คำสั่ง sudo และ  สมมติว่าคุณมีสถานะ sudo.

วิธีตรวจสอบสถานะ sudo ในบัญชีของคุณ:

sudo whoami

ตัวอย่างผลลัพธ์ที่แสดงสถานะ sudo:

[joshua@localhost ~]$ sudo whoami
root

หากต้องการตั้งค่าบัญชี sudo ที่มีอยู่หรือใหม่ โปรดไปที่บทช่วยสอนของเราที่ วิธีเพิ่มผู้ใช้ใน Sudoers บน AlmaLinux.

ในการใช้งาน บัญชีรูทให้ใช้คำสั่งต่อไปนี้ด้วยรหัสผ่าน root เพื่อเข้าสู่ระบบ

su

ติดตั้ง Memcached

ตามค่าเริ่มต้น AlmaLinux จะมี Memcached ในสตรีมแอป ในการติดตั้ง Memcached ให้ป้อนคำสั่งต่อไปนี้:

sudo dnf install memcached libmemcached

ตัวอย่างผลลัพธ์:

วิธีการติดตั้งและกำหนดค่า Memcached บน AlmaLinux 8

ชนิดภาพเขียน Y, จากนั้นกด ใส่รหัส เพื่อดำเนินการติดตั้งต่อไป

หมายเหตุ ตัวเลือกการติดตั้งที่สอง “libmemcached” แพ็คเกจ ให้คำสั่งเพิ่มเติมเพื่อนำความสามารถในการโต้ตอบและการดำเนินการพิเศษมาสู่ Memcached

ถัดไป ตรวจสอบว่าติดตั้ง Memcached อย่างถูกต้องโดยตรวจสอบเวอร์ชันและ build

memcached --version

ตัวอย่างผลลัพธ์:

memcached 1.5.22

โดยค่าเริ่มต้น บริการจะไม่เปิดใช้งาน ในการเริ่ม Memcached โดยใช้คำสั่งต่อไปนี้:

sudo systemctl enable memcached --now

Memcached ควรเปิดใช้งานโดยค่าเริ่มต้น เพื่อตรวจสอบสิ่งนี้ ใช้ คำสั่งสถานะ systemctl ดังต่อไปนี้:

systemctl status memcached

ตัวอย่างผลลัพธ์:

วิธีการติดตั้งและกำหนดค่า Memcached บน AlmaLinux 8

คำสั่งที่มีประโยชน์อื่น ๆ ในการจัดการบริการ Memcached มีดังนี้:

ในการเปิดใช้งานบริการ Memcached ในการบู๊ตระบบ:

sudo systemctl enable memcached

ในการหยุดบริการ Memcached:

sudo systemctl stop memcached

ในการปิดใช้งานบริการ Memcached เมื่อบูตระบบ:

sudo systemctl disable memcached

ในการเริ่มบริการ Memcached ใหม่:

sudo systemctl restart memcached

ถัดไป ให้ตรวจสอบว่า Memcached กำลังฟัง localhost บนค่าเริ่มต้นอยู่ พอร์ต 11211. เพื่อยืนยันประเภทนี้สิ่งต่อไปนี้:

ps -ef | grep memcached

ตัวอย่างผลลัพธ์:

memcach+   27220       1  0 22:24 ?        00:00:00 /usr/bin/memcached -p 11211 -u memcached -m 2000 -c 2000 -l 127.0.0.1 -U 0
joshua     29536   25923  0 22:52 pts/0    00:00:00 grep --color=auto memcached

กำหนดค่า Memcached

Memcached ต้องฟัง 127.0.0.1. เปิดการตั้งค่าเริ่มต้นในไฟล์กำหนดค่าที่ "/etc/sysconfig/memcached"

sudo nano /etc/sysconfig/memcached

ตัวเลือกแรกคือเปลี่ยนหมายเลขพอร์ตดั้งเดิมสำหรับ Memcached

11211

หากคุณมีหมายเลขพอร์ตนี้และมีกฎไฟร์วอลล์อยู่แล้ว จะต้องอัปเดตหมายเลขดังกล่าว ตามหลักการแล้ว ค่านี้สามารถปล่อยไว้เป็นค่าเริ่มต้นได้

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

MAXCONN="2000"

การเชื่อมต่อสูงสุดควรเพิ่มขึ้นอย่างช้าๆ และทดสอบ อย่าตั้งไว้สูงเกินไป

ถัดไป เปลี่ยนขนาดแคชเริ่มต้น 64MB เป็นขนาดที่คุณเชื่อว่าแคชของคุณจะมีพื้นที่ว่างบางส่วน

ตัวอย่างของการเปลี่ยนเป็น 2GB:

CACHESIZE="2000"

หากเซิร์ฟเวอร์ของคุณมีทรัพยากรมากมาย จำนวนเท่าใดก็ได้ แต่ให้ระวังและตั้งค่าให้อยู่ภายในขีดจำกัดของคุณ หากคุณอยู่ในโฮสต์งบประมาณ

ตอนนี้เลื่อนลงและค้นหาบรรทัดต่อไปนี้และตรวจสอบ “-ล” พารามิเตอร์ที่มีอยู่

จากที่นี่ คุณสามารถออกจาก localhost หรือระบุที่อยู่ IP ภายในหรือภายนอกได้ นอกจากนี้ คุณสามารถเพิ่มตัวเลือกเพิ่มเติมซึ่งจะอธิบายไว้ด้านล่าง

-l 127.0.0.1

แฟล็กเพิ่มเติมแรกคือการปิดใช้งาน UDP หากไม่ต้องการ

-U 0

ภาพรวมของบทช่วยสอนเกี่ยวกับการตั้งค่าของคุณอาจดูเหมือนเมื่อเสร็จแล้ว

ตัวอย่างเท่านั้น:

วิธีการติดตั้งและกำหนดค่า Memcached บน AlmaLinux 8

ตอนนี้บันทึกไฟล์ CTRL + O และกด “ครับ” แล้วก็ CTRL + X เพื่อออกและรีสตาร์ทอินสแตนซ์ Memcached ของคุณ

sudo systemctl restart memcached

กำหนดค่าไฟร์วอลล์สำหรับ Memcached

ตามค่าเริ่มต้น จะไม่มีการตั้งค่ากฎสำหรับ Memcached ซึ่งหมายความว่าคุณจะต้องสร้างกฎการอนุญาตซึ่งจำเป็นต่อการหยุดการโจมตี การไม่รักษาความปลอดภัย Memcached จะทำให้เกิดปัญหาตามมา ดังนั้นอย่าข้ามขั้นตอนนี้ เว้นแต่คุณจะมีวิธีอื่นในการป้องกันการติดตั้งของคุณ

ขั้นแรก เพิ่มโซนเฉพาะใหม่สำหรับนโยบายไฟร์วอลล์ Memcached:

sudo firewall-cmd --permanent --new-zone=memcached

ถัดไป ระบุที่อยู่ IP ที่อนุญาตซึ่งได้รับอนุญาตให้เข้าถึง Memcached

sudo firewall-cmd --permanent --zone=memcached --add-source=1.2.3.4

แทนที่ 1.2.3.4 ด้วย IP ที่อยู่ที่จะเพิ่มลงในรายการอนุญาต

เมื่อคุณเพิ่มที่อยู่ IP เสร็จแล้ว ให้เปิดพอร์ตของ Memcached

โดยค่าเริ่มต้น นี่คือ พอร์ต TCP 11211.

sudo firewall-cmd --permanent --zone=memcached --add-port=11211/tcp

หมายเหตุ คุณสามารถเปลี่ยนพอร์ตเริ่มต้นในไฟล์การกำหนดค่าของคุณได้ หากคุณเปลี่ยนกฎการเปิดพอร์ตไฟร์วอลล์ด้านบนเป็นค่าใหม่

หลังจากรันคำสั่งเหล่านั้นแล้ว ให้โหลดไฟร์วอลล์ใหม่เพื่อใช้กฎใหม่:

sudo firewall-cmd --reload

ตัวอย่างผลลัพธ์หากสำเร็จ:

success

ติดตั้ง Memcached PHP Libraries

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

ขั้นแรก ติดตั้งที่เก็บ EPEL และ Remi PHP

sudo dnf install epel-release -y
sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm -y

ถัดไป เปิดใช้งานโมดูล PHP ที่คุณกำลังใช้อยู่ ตัวอย่างบางส่วนอยู่ด้านล่าง

PHP 8.0:

sudo dnf module enable php:remi-8.0 -y

PHP 7.4:

sudo dnf module enable php:remi-7.4 -y

ถัดไป ติดตั้งการสนับสนุน Memcached PHP โดยใช้คำสั่งต่อไปนี้

sudo dnf install php-pecl-memcache php-pecl-memcached

ตัวอย่างผลลัพธ์:

วิธีการติดตั้งและกำหนดค่า Memcached บน AlmaLinux 8

ชนิดภาพเขียน Y, จากนั้นกด ใส่รหัส เพื่อดำเนินการติดตั้งต่อไป

นอกจากนี้ สำหรับการสนับสนุน Memcached ด้วย Python คุณสามารถติดตั้งแพ็คเกจต่อไปนี้โดยใช้ไลบรารี PIP

pip3 install pymemcache --user
pip3 install python-memcached --user

การเข้าถึง Memcached จาก Command Line

สถิติ Memcached สามารถรวบรวมได้จากซอฟต์แวร์เพิ่มเติมและ WEB UI ที่ทำงานร่วมกันได้ อย่างไรก็ตาม วิธีที่ดีกว่าในการตรวจสอบคือการโต้ตอบกับ Memcached โดยตรงโดยใช้บรรทัดคำสั่ง

ประการแรก TELNET ในบริการของคุณ:

telnet localhost 11211

ตัวอย่างผลลัพธ์:

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

หมายเหตุ หากไม่ได้ติดตั้ง Telnet ให้เรียกใช้คำสั่งต่อไปนี้เพื่อติดตั้ง

sudo dnf install telnet -y

หมายเหตุ ไม่ควรอนุญาตให้ TELNET สื่อสารกับเครือข่ายสาธารณะและถูกจำกัดในสภาพแวดล้อมเครือข่ายส่วนตัว

ถัดไป คุณสามารถรับภาพรวมของบริการ Memcached ของคุณโดยใช้คำสั่งต่อไปนี้:

stats

ตัวอย่างผลลัพธ์:

STAT pid 5934
STAT uptime 1275
STAT time 1631930242
STAT version 1.6.9
STAT libevent 2.1.12-stable
STAT pointer_size 64
STAT rusage_user 0.113635
STAT rusage_system 0.000000
STAT max_connections 1024
STAT curr_connections 1
STAT total_connections 2
STAT rejected_connections 0
STAT connection_structures 2
STAT response_obj_oom 0
STAT response_obj_count 1
STAT response_obj_bytes 16384
STAT read_buf_count 2
STAT read_buf_bytes 32768
STAT read_buf_bytes_free 0
STAT read_buf_oom 0
STAT reserved_fds 20
STAT cmd_get 0
STAT cmd_set 0
STAT cmd_flush 0
STAT cmd_touch 0
STAT cmd_meta 0
STAT get_hits 0
STAT get_misses 0
STAT get_expired 0
STAT get_flushed 0
STAT delete_misses 0
STAT delete_hits 0
STAT incr_misses 0
STAT incr_hits 0
STAT decr_misses 0
STAT decr_hits 0
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT touch_hits 0
STAT touch_misses 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 7
STAT bytes_written 0
STAT limit_maxbytes 67108864
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT time_in_listen_disabled_us 0
STAT threads 4
STAT conn_yields 0
STAT hash_power_level 16
STAT hash_bytes 524288
STAT hash_is_expanding 0
STAT slab_reassign_rescues 0
STAT slab_reassign_chunk_rescues 0
STAT slab_reassign_evictions_nomem 0
STAT slab_reassign_inline_reclaim 0
STAT slab_reassign_busy_items 0
STAT slab_reassign_busy_deletes 0
STAT slab_reassign_running 0
STAT slabs_moved 0
STAT lru_crawler_running 0
STAT lru_crawler_starts 6
STAT lru_maintainer_juggles 1325
STAT malloc_fails 0
STAT log_worker_dropped 0
STAT log_worker_written 0
STAT log_watcher_skipped 0
STAT log_watcher_sent 0
STAT unexpected_napi_ids 0
STAT round_robin_fallback 0
STAT bytes 0
STAT curr_items 0
STAT total_items 0
STAT slab_global_page_pool 0
STAT expired_unfetched 0
STAT evicted_unfetched 0
STAT evicted_active 0
STAT evictions 0
STAT reclaimed 0
STAT crawler_reclaimed 0
STAT crawler_items_checked 0
STAT lrutail_reflocked 0
STAT moves_to_cold 0
STAT moves_to_warm 0
STAT moves_within_lru 0
STAT direct_reclaims 0
STAT lru_bumps_dropped 0
END

ดังที่กล่าวข้างต้น สิ่งนี้จะแสดงสิ่งสำคัญบางอย่างที่คุณอาจต้องการดู เช่น เวลาทำงาน จำนวนรายการในแคช และจำนวนการเชื่อมต่อไคลเอ็นต์กับอินสแตนซ์

คุณสามารถปรับแต่งการค้นหาได้โดยดูจากหน่วยความจำ Memcached (พาร์ติชั่น) ต่างๆ เพื่อส่งคืนผลลัพธ์

ตัวอย่างด้านล่าง:

แสดงรายการแผ่นในอินสแตนซ์ที่เชื่อมต่อ:

stats slabs

รายชื่อแผ่นที่มีจำนวนรายการที่จัดเก็บไว้ในแผ่นแต่ละแผ่น:

stats items

ถัดไป คุณสามารถเข้าถึงและลบข้อมูลโดยใช้ปุ่ม คำสั่ง cachedump เพื่อแสดงรายการคีย์

ขั้นแรกให้ดำเนินการ คำสั่ง cachedump:

stats cachedump [slab ID] [number of items, 0 for all items]

ตัวอย่างในการดำเนินการ:

stats cachedump 1 0

ตัวอย่างผลลัพธ์:

ITEM testkey [9 b; 1296857316 s]
END

ดังกล่าวข้างต้น SLAB 1 มีหนึ่งรายการที่มีคีย์ “รหัสทดสอบ” ในการรับค่าจริง คุณสามารถใช้เครื่องหมาย “รับกุญแจ” คำสั่งดังต่อไปนี้:

get testkey

ตัวอย่างผลลัพธ์:

VALUE testkey 0 9
test data
END

สุดท้ายนี้ เพื่อลบรายการแคช ในกรณีนี้ “รหัสทดสอบ” ใช้คำสั่งต่อไปนี้:

delete testkey

ตัวอย่างผลลัพธ์:

DELETED

วิธีลบ (ถอนการติดตั้ง) Memcached

หากต้องการลบ Memcached ให้ใช้คำสั่งต่อไปนี้ในเทอร์มินัลของคุณ

sudo dnf autoremove memcached libmemcached

การดำเนินการนี้จะลบ Memcached ออกจากระบบของคุณทันที

ความคิดเห็นและข้อสรุป

บทช่วยสอนได้แสดงวิธีการติดตั้ง Memcached บนระบบปฏิบัติการ Almalinux 8 ของคุณ ติดตั้งไลบรารีเพิ่มเติม และวิธีเข้าถึงรายการคำสั่งเทอร์มินัล

เอกสารประกอบเพิ่มเติม Github Wiki หน้าอธิบายเพิ่มเติมในรายละเอียดที่ดีสำหรับผู้ดูแลระบบเซิร์ฟเวอร์ข้อกำหนดหรือข้อมูลใด ๆ ที่พวกเขาต้องการ



ไม่ใช่สิ่งที่คุณกำลังมองหา? ลองค้นหาบทช่วยสอนเพิ่มเติม

แสดงความคิดเห็น