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:
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!