


Bagaimana untuk menyelesaikan masalah memori yang tidak mencukupi apabila menggunakan redis dalam php
Penyelesaian kepada memori PHP yang tidak mencukupi menggunakan redis: 1. Tetapkan saiz memori maksimum Redis kepada 100M melalui fail konfigurasi atau arahan 2. Dapatkan strategi penghapusan memori semasa; Melalui arahan "config Set maxmemory-policy allkeys-lru" boleh digunakan untuk mengubah suai dasar penghapusan.
Saiz memori yang diduduki oleh Redis
Kami tahu bahawa Redis ialah pangkalan data nilai kunci berasaskan memori Kerana saiz memori sistem adalah terhad, kami menggunakan Redis Anda boleh mengkonfigurasi saiz memori maksimum yang boleh digunakan oleh Redis.
1. Konfigurasikan melalui fail konfigurasi
Tetapkan saiz memori dengan menambah konfigurasi berikut pada fail konfigurasi redis.conf di bawah direktori pemasangan Redis
/ /Tetapkan saiz memori maksimum Redis kepada 100M maxmemory 100mb
Fail konfigurasi redis tidak semestinya menggunakan fail redis.conf di bawah direktori pemasangan apabila memulakan perkhidmatan redis, anda boleh menghantar parameter untuk menentukan fail konfigurasi redis. saiz memori maksimum yang diduduki oleh Redis kepada 100M 127.0.0.1:6379> set config maxmemory 100mb //Dapatkan saiz memori maksimum yang Redis boleh gunakan 127.0.0.1:6379> dapatkan saiz memori maksimumtidak ditetapkan atau saiz memori maksimum ditetapkan kepada 0 , tiada had pada saiz memori di bawah sistem pengendalian 64-bit, dan sehingga 3GB memori boleh digunakan di bawah sistem pengendalian 32-bit
Penghapusan memori Redis
Kini setelah penghunian maksimum Redis boleh ditetapkan saiz memori, maka memori yang dikonfigurasikan akan digunakan. Kemudian apabila memori kehabisan, tidakkah tiada memori yang tersedia jika kita terus menambah data ke Redis? Malah, Redis mentakrifkan beberapa strategi untuk mengendalikan situasi ini:noeviction (dasar lalai)
: tidak lagi menyediakan perkhidmatan untuk permintaan tulis dan terus mengembalikan ralat (kecuali untuk permintaan DEL dan beberapa permintaan khas)kekunci semua -lru: Gunakan algoritma LRU untuk menghapuskan daripada semua kekunci
volatile-lru: Gunakan algoritma LRU untuk menghapuskan daripada kekunci dengan set masa tamat tempoh allkeys-random
: Dari Secara Rawak hapuskan data dalam semua kekuncivolatile-random: Alih keluar data secara rawak daripada kunci dengan set masa tamat volatile-ttl: Dalam kunci dengan set masa tamat, mengikut masa tamat tempoh kunci Untuk penyingkiran, lebih cepat ia tamat tempoh, keutamaan yang lebih tinggi ia akan dihapuskan Apabila menggunakan volatile-lru, volatile-random, volatile-ttl ketiga-tiga ini Apabila menggunakan strategi ini, jika tiada kunci boleh dihapuskan, ralat yang sama akan dikembalikan seperti noeviction
Cara mendapatkan dan menetapkan strategi penghapusan memori Dapatkan dasar penghapusan Memori semasa: 127.0.0.1:6379> config get maxmemory-policyTetapkan dasar penghapusan melalui fail konfigurasi (ubah suai redis.conf fail):
maxmemory-policy allkeys-lru
Ubah suai dasar penghapusan melalui arahan: 127.0.0.1:6379> set konfigurasi maxmemory-policy-lruAlgoritma LRU
Apakah itu LRU?
Seperti yang dinyatakan di atas, apabila memori maksimum yang tersedia untuk Redis telah digunakan, algoritma LRU boleh digunakan untuk penghapusan ingatan Jadi apakah algoritma LRU?LRU (Paling Kurang Digunakan)
, yang paling kurang digunakan baru-baru ini, ialah algoritma penggantian cache. Apabila menggunakan memori sebagai cache, saiz cache biasanya ditetapkan. Apabila cache penuh dan anda terus menambah data pada cache, anda perlu menghapuskan beberapa data lama dan mengosongkan ruang memori untuk menyimpan data baharu. Pada masa ini, algoritma LRU boleh digunakan. Idea teras ialah: jika sekeping data tidak digunakan dalam tempoh baru-baru ini, kemungkinan untuk digunakan pada masa hadapan adalah sangat kecil, jadi ia boleh dihapuskan.Pelaksanaan LRU dalam Redis
Algoritma LRU AnggaranRedis menggunakan algoritma LRU anggaran, yang serupa dengan konvensional Algoritma LRU tidaklah sama. Algoritma LRU anggaran menghapuskan data melalui pensampelan rawak, memilih 5 kekunci (lalai) secara rawak setiap kali, dan menghapuskan kekunci yang paling kurang digunakan baru-baru ini.
Anda boleh mengubah suai bilangan sampel melalui parameter maxmemory-samples: Contoh: maxmemory-samples 10 Semakin besar konfigurasi sampel maxmenory, semakin hampir hasil penyingkiran dengan algoritma LRU yang ketat
Redis untuk mencapai anggaran Algoritma LRU menambah medan 24-bit tambahan pada setiap kunci untuk menyimpan kali terakhir kunci itu diakses.Apakah alatan untuk membina persekitaran pembangunan PHP
1.phpStudy ialah persekitaran pembangunan yang paling biasa digunakan untuk pemula.2. WampServer, WampServer juga mudah dikendalikan seperti phpStudy dan lebih mesra kepada orang baru.
3. XAMPP, XAMPP (Apache+MySQL+PHP+PERL) ialah pakej perisian bersepadu membina laman web
4 untuk Mac.
5. Pagoda Panel, Pagoda Panel ialah perisian pengurusan pelayan yang menyokong sistem Windows dan Linux.
6. UPUPW, UPUPW kini merupakan suite PHP pelayan web yang paling tersendiri di bawah platform Windows.
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah memori yang tidak mencukupi apabila menggunakan redis dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Masa depan PHP akan dicapai dengan menyesuaikan diri dengan trend teknologi baru dan memperkenalkan ciri -ciri inovatif: 1) menyesuaikan diri dengan pengkomputeran awan, kontena dan seni bina microservice, menyokong Docker dan Kubernetes; 2) memperkenalkan pengkompil JIT dan jenis penghitungan untuk meningkatkan prestasi dan kecekapan pemprosesan data; 3) Berterusan mengoptimumkan prestasi dan mempromosikan amalan terbaik.

Mod Redis cluster menyebarkan contoh Redis ke pelbagai pelayan melalui sharding, meningkatkan skalabilitas dan ketersediaan. Langkah -langkah pembinaan adalah seperti berikut: Buat contoh Redis ganjil dengan pelabuhan yang berbeza; Buat 3 contoh sentinel, memantau contoh redis dan failover; Konfigurasi fail konfigurasi sentinel, tambahkan pemantauan maklumat contoh dan tetapan failover; Konfigurasi fail konfigurasi contoh Redis, aktifkan mod kluster dan tentukan laluan fail maklumat kluster; Buat fail nodes.conf, yang mengandungi maklumat setiap contoh Redis; Mulakan kluster, laksanakan perintah Buat untuk membuat kluster dan tentukan bilangan replika; Log masuk ke kluster untuk melaksanakan perintah maklumat kluster untuk mengesahkan status kluster; buat

PHP dan Python masing -masing mempunyai kelebihan sendiri, dan pilihannya harus berdasarkan keperluan projek. 1.Php sesuai untuk pembangunan web, dengan sintaks mudah dan kecekapan pelaksanaan yang tinggi. 2. Python sesuai untuk sains data dan pembelajaran mesin, dengan sintaks ringkas dan perpustakaan yang kaya.

Menggunakan Arahan Redis memerlukan langkah -langkah berikut: Buka klien Redis. Masukkan arahan (nilai kunci kata kerja). Menyediakan parameter yang diperlukan (berbeza dari arahan ke arahan). Tekan Enter untuk melaksanakan arahan. Redis mengembalikan tindak balas yang menunjukkan hasil operasi (biasanya OK atau -r).

Cara Mengosongkan Data Redis: Gunakan perintah Flushall untuk membersihkan semua nilai utama. Gunakan perintah flushdb untuk membersihkan nilai utama pangkalan data yang dipilih sekarang. Gunakan Pilih untuk menukar pangkalan data, dan kemudian gunakan FlushDB untuk membersihkan pelbagai pangkalan data. Gunakan perintah DEL untuk memadam kunci tertentu. Gunakan alat REDIS-CLI untuk membersihkan data.

Cara terbaik untuk memahami kod sumber REDIS adalah dengan langkah demi langkah: Dapatkan akrab dengan asas -asas Redis. Pilih modul atau fungsi tertentu sebagai titik permulaan. Mulakan dengan titik masuk modul atau fungsi dan lihat baris kod mengikut baris. Lihat kod melalui rantaian panggilan fungsi. Berhati -hati dengan struktur data asas yang digunakan oleh REDIS. Kenal pasti algoritma yang digunakan oleh Redis.

Untuk membaca giliran dari Redis, anda perlu mendapatkan nama giliran, membaca unsur -unsur menggunakan arahan LPOP, dan memproses barisan kosong. Langkah-langkah khusus adalah seperti berikut: Dapatkan nama giliran: Namakannya dengan awalan "giliran:" seperti "giliran: my-queue". Gunakan arahan LPOP: Keluarkan elemen dari kepala barisan dan kembalikan nilainya, seperti LPOP Queue: My-Queue. Memproses Baris kosong: Jika barisan kosong, LPOP mengembalikan nihil, dan anda boleh menyemak sama ada barisan wujud sebelum membaca elemen.

PHP tidak mati, tetapi sentiasa menyesuaikan diri dan berkembang. 1) PHP telah menjalani beberapa lelaran versi sejak tahun 1994 untuk menyesuaikan diri dengan trend teknologi baru. 2) Ia kini digunakan secara meluas dalam e-dagang, sistem pengurusan kandungan dan bidang lain. 3) Php8 memperkenalkan pengkompil JIT dan fungsi lain untuk meningkatkan prestasi dan pemodenan. 4) Gunakan OPCACHE dan ikut piawaian PSR-12 untuk mengoptimumkan prestasi dan kualiti kod.
