Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pengaturcaraan pelayan Python: Belajar menggunakan memcached untuk mengoptimumkan prestasi

Pengaturcaraan pelayan Python: Belajar menggunakan memcached untuk mengoptimumkan prestasi

WBOY
WBOYasal
2023-06-18 16:15:59878semak imbas

Pengaturcaraan pelayan Python: Belajar menggunakan memcached untuk mengoptimumkan prestasi

Dalam pengaturcaraan pelayan Python, pengoptimuman prestasi ialah isu yang sangat penting. Dalam aplikasi web, pertanyaan pangkalan data adalah operasi yang sangat memakan masa. Oleh itu, bagi meningkatkan prestasi aplikasi web, salah satu kaedahnya ialah dengan menggunakan sistem caching. Dalam Python, memcached ialah sistem caching yang sangat popular yang sangat pantas dan boleh mengurangkan masa yang diperlukan untuk operasi pangkalan data.

Artikel ini akan memperkenalkan konsep asas dan penggunaan memcached, dan menunjukkan cara menggunakan memcached dalam Python untuk meningkatkan prestasi aplikasi.

Apakah memcached?

Memcached ialah sistem caching objek memori teragih berprestasi tinggi. Ia boleh menyimpan data yang kerap diakses dalam ingatan, dengan itu mengelakkan pembacaan berulang pangkalan data dan meningkatkan prestasi aplikasi web.

Memcached menyimpan data dalam bentuk pasangan nilai kunci. Apabila menyimpan data, anda perlu menyediakan kunci dan nilai. Untuk mendapatkan semula nilai yang disimpan dalam memcached, hanya berikan kunci yang sepadan.

Untuk meningkatkan kebolehpercayaan, memcached mengedarkan data kepada berbilang pelayan untuk storan. Apabila pelayan turun, memcached akan memindahkan datanya secara automatik ke pelayan storan lain. Pendekatan ini boleh mengurangkan satu titik kegagalan dan meningkatkan ketersediaan program.

Pasang dan jalankan memcached

Sebelum menggunakan memcached, anda perlu memasangnya. Pada kebanyakan pengedaran Linux, memcached boleh dipasang melalui pengurus pakej. Sebagai contoh, dalam Ubuntu, anda boleh menggunakan arahan berikut untuk memasang:

$ sudo apt-get install memcached

Selepas pemasangan selesai, anda boleh menggunakan arahan berikut untuk memulakan memcached:

$ memcached -m 64 -p 11211 -u nobody -l 127.0.0.1

Arahan ini akan memulakan a contoh memcached yang menggunakan memori 64MB, dan mendengar pada port 11211 hos tempatan. Pilihan -nobody yang ditentukan pengguna bermakna memcached berjalan sebagai pengguna nobody, yang merupakan pengguna yang tidak mempunyai hak istimewa dan biasanya tidak menimbulkan risiko kepada keselamatan sistem.

Menyambung memcached

PyLibmc dalam Python ialah perpustakaan klien Python untuk memcached. Untuk menggunakan PyLibmc, anda perlu memasangnya terlebih dahulu. Ia boleh dipasang menggunakan arahan berikut:

$ pip install pylibmc

Setelah pemasangan selesai, anda boleh menggunakan kod berikut untuk menyambung ke memcached:

import memcache

mc = memcache.Client(['127.0.0.1:11211'], debug=0)

Ini akan mencipta objek klien memcached mc, yang menyambung ke pelabuhan 11211 tuan rumah atasan tempatan.

Menyimpan dan mendapatkan semula data

Kaedah menggunakan PyLibmc untuk menyimpan data adalah sangat mudah. Berikut ialah contoh:

mc.set("foo", "bar")

Ini akan menyimpan rentetan "bar" pada kekunci "foo" dalam memcached.

Untuk mendapatkan data yang disimpan, anda boleh menggunakan kod berikut:

value = mc.get("foo")
print(value)  # 输出:bar

Dalam kebanyakan kes, memcached bertindak balas dengan cepat untuk mendapatkan dan menetapkan permintaan. Walau bagaimanapun, jika pasangan nilai kunci yang diminta tiada dalam cache, anda perlu menanyakan data dalam pangkalan data. Dalam kes ini, memcached tidak dapat memberikan banyak bantuan. Oleh itu, apabila menggunakan memcached, anda perlu mempertimbangkan data mana yang sesuai untuk caching, dan anda perlu menetapkan strategi memcached mengikut keperluan aplikasi.

Tetapkan masa tamat tempoh

memcached membenarkan menetapkan masa tamat tempoh untuk setiap pasangan nilai kunci. Masa ini dikira dari masa apabila pasangan nilai kunci disimpan, dan selepas masa dicapai, memcached akan memadamkan pasangan nilai kunci secara automatik daripada cache.

Berikut ialah contoh:

mc.set("foo", "bar", time=60)

Kod ini akan mengalih keluar pasangan nilai kunci daripada cache selepas 60 saat.

Operasi Kelompok

Menggunakan perpustakaan klien memcached Python, berbilang pasangan nilai kunci boleh dikendalikan dalam kelompok, dengan itu meningkatkan prestasi operasi.

Berikut ialah contoh:

mc.set_multi({"foo": "bar", "hello": "world"})

Ini akan menyimpan dua pasangan nilai kunci "foo" dan "hello" ke dalam memcached pada masa yang sama.

Menggunakan memcached untuk mengoptimumkan prestasi

Menggunakan memcached untuk mengoptimumkan prestasi aplikasi web bukanlah satu tugas yang mudah. Berikut ialah beberapa petua untuk menggunakan memcached untuk mengoptimumkan prestasi:

  1. Cache data yang kerap dibaca: Dalam aplikasi web, selalunya perlu membaca data tertentu, seperti maklumat konfigurasi pengguna, maklumat artikel, dsb. Bilangan suka dan sebagainya. Data ini perlu diperolehi daripada pangkalan data setiap kali ia dibaca. Anda boleh menggunakan memcached untuk menyimpan data ini dalam cache, dengan itu mengelakkan berbilang bacaan ke pangkalan data dan meningkatkan prestasi aplikasi.
  2. Gunakan masa tamat tempoh: Dalam sesetengah kes, data dalam cache mungkin menjadi basi. Sebagai contoh, maklumat konfigurasi pengguna mungkin berubah selepas 5 minit. Jika data dalam cache sudah lapuk, maka setiap bacaan perlu mendapatkan data terkini daripada pangkalan data. Untuk mengelakkan situasi ini, anda boleh menetapkan masa tamat tempoh memcached Apabila masa tamat tempoh tiba, memcached akan memadam pasangan nilai kunci secara automatik daripada cache.
  3. Gunakan cache teragih: Jika data yang perlu dicache adalah sangat besar, mungkin terdapat situasi di mana satu tika memcached tidak dapat menyimpan semua data yang dicache. Anda boleh mempertimbangkan untuk menggunakan berbilang kejadian memcached untuk menyimpan data cache dalam berbilang kejadian.
  4. Gunakan cache setempat: Dalam sesetengah kes, anda boleh mempertimbangkan untuk menggunakan cache setempat. Cache tempatan lebih pantas daripada cache yang diedarkan kerana data disimpan dalam memori tempatan dan dalam situasi berbilang benang atau berbilang proses, cache tempatan boleh mengelakkan masalah penguncian. Walau bagaimanapun, kelemahan cache tempatan ialah ia tidak mempunyai kelebihan cache yang diedarkan dan tidak dapat mengendalikan pengimbangan beban berbilang pelayan.

Ringkasan

Artikel ini memperkenalkan konsep asas dan penggunaan memcached, dan menunjukkan cara menggunakan memcached dalam Python untuk meningkatkan prestasi aplikasi web. Menggunakan memcached boleh mengelakkan pembacaan berulang pangkalan data, dengan itu meningkatkan prestasi program. Walau bagaimanapun, anda perlu memberi perhatian kepada beberapa isu apabila menggunakan memcached, seperti data mana yang sesuai untuk data cache dan menetapkan masa tamat tempoh, dsb. Dengan menggunakan memcached dengan betul, anda boleh meningkatkan prestasi aplikasi web dengan berkesan dan meningkatkan pengalaman pengguna.

Atas ialah kandungan terperinci Pengaturcaraan pelayan Python: Belajar menggunakan memcached untuk mengoptimumkan prestasi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn