cari
Rumahpangkalan dataRedisMari kita bincangkan tentang strategi penghapusan cache Redis

Mari kita bincangkan tentang strategi penghapusan cache Redis

Oct 27, 2021 am 10:24 AM
redisstrategi penyingkirancache

Redis Apakah strategi penghapusan cache? Artikel ini akan bercakap dengan anda tentang strategi penghapusan cache Redis dan memperkenalkan cadangan tetapan strategi cache saya harap ia akan membantu anda.

Mari kita bincangkan tentang strategi penghapusan cache Redis

Redis (Pelayan Kamus Jauh), perkhidmatan kamus jauh, ialah jenis log sumber terbuka yang ditulis dalam bahasa ANSI C, menyokong rangkaian, boleh berasaskan memori dan berterusan , pangkalan data Key-Value dan menyediakan API dalam berbilang bahasa. [Cadangan berkaitan: Tutorial video Redis]

Ia mempunyai ciri-ciri berikut:

  • Ia berjalan berdasarkan memori dan mempunyai ciri prestasi tinggi
  • Menyokong pengembangan yang diedarkan, tanpa had secara teorinya
  • struktur storan nilai kunci, pertanyaan yang cekap
  • Menyediakan berbilang API bahasa pembangunan, mudah untuk disepadukan dengan sistem perniagaan sedia ada.

Biasanya digunakan dalam sistem perniagaan untuk cache teragih, storan sesi berpusat, kunci teragih dan senario aplikasi lain.

Sama ada cache tempatan atau cache yang diedarkan, untuk memastikan prestasi yang lebih tinggi, memori digunakan untuk menyimpan data Disebabkan oleh had kos dan memori, apabila data yang disimpan melebihi kapasiti cache, data yang dicache perlu dicache. Strategi penghapusan biasa termasuk FIFO untuk menghapuskan data tertua, LRU untuk menghapuskan data yang paling kurang digunakan baru-baru ini, dan LFU untuk menghapuskan data yang paling kurang digunakan baru-baru ini.

Dasar pengusiran cache Redis mencetuskan

Dalam persekitaran pengeluaran, kami tidak membenarkan gelagat swap dalam redis. Oleh itu, penggunaan memori maksimum biasanya terhad. Redis menyediakan parameter konfigurasi maxmemory untuk menentukan penggunaan memori maksimum.

Konfigurasi berikut adalah sah:

maxmemory 1000KB 
maxmemory 100MB 
maxmemory 1GB 
maxmemory 0  # 表示不做限制,一般不会用

fail konfigurasi redis.conf adalah seperti berikut

Mari kita bincangkan tentang strategi penghapusan cache Redis

8 Cache Redis strategi

  • volatile-lru memadamkan data yang paling jarang digunakan antara data dengan tamat masa yang ditetapkan; Padamkan data yang paling kurang kerap digunakan dalam kunci, yang merupakan strategi yang paling banyak digunakan; kekunci dan kemudian memadamnya secara rawak;

  • volatile-ttl menanyakan semua data dengan tamat masa yang ditetapkan, mengisihnya serta-merta selepas itu dan memadamkan data yang akan tamat tempoh
  • noeviction (lalai) Jika ditetapkan kepada atribut ini, tiada operasi pemadaman akan dilakukan, dan ralat akan dikembalikan jika memori melimpah; >

  • allkeys-lfu mengusir kekunci yang paling kurang kerap digunakan daripada semua kunci; >
  • Algoritma LRU
  • Algoritma Redis LRU bukanlah pelaksanaan yang tepat. Ini bermakna Redis tidak boleh memilih calon
  • terbaik
  • untuk disingkirkan, iaitu calon yang paling ramai dikunjungi pada masa lalu. Sebaliknya, ia cuba menjalankan anggaran algoritma LRU dengan mengambil sampel sebilangan kecil kunci dan kemudian mengusir yang terbaik (dengan masa capaian terawal) kunci sampel.
  • Walau bagaimanapun, bermula dengan Redis 3.0, algoritma telah dipertingkatkan dan juga boleh memilih beberapa calon yang baik untuk pengusiran. Ini meningkatkan prestasi algoritma, membolehkannya lebih menyerupai kelakuan algoritma LRU sebenar.

    Perkara penting tentang algoritma Redis LRU ialah anda
  • boleh
  • menala ketepatan algoritma
  • dengan menukar bilangan sampel
untuk menyemak setiap pengusiran. Parameter ini dikawal oleh arahan konfigurasi berikut:

Sebab Redis tidak menggunakan pelaksanaan LRU sebenar adalah kerana ia memerlukan lebih banyak memori. Walau bagaimanapun, untuk aplikasi yang menggunakan Redis, anggaran sebenarnya adalah setara. Berikut ialah carta perbandingan antara anggaran LRU yang digunakan oleh Redis dan LRU sebenar.

Ujian yang menjana graf di atas mengisi pelayan Redis dengan bilangan kunci yang diberikan. Kekunci diakses dari pertama hingga terakhir, jadi kunci pertama adalah calon terbaik untuk pengusiran menggunakan algoritma LRU. Tambahan 50% daripada kunci telah ditambahkan kemudiannya untuk memaksa pengusiran separuh daripada kunci lama.

Anda boleh melihat tiga jenis titik dalam gambar, membentuk tiga jalur berbeza.

Jalur kelabu muda ialah objek yang diusir. Jalur kelabu ialah objek yang belum diusir.

Jalur hijau ialah objek tambahan. Dalam pelaksanaan LRU secara teori, kami menjangkakan bahawa dalam kunci lama, separuh masa pertama akan tamat tempoh. Algoritma Redis LRU hanya akan tamat tempoh kekunci lama dengan kebarangkalian

.
maxmemory-samples 5

LRU hanyalah model yang meramalkan kemungkinan kunci yang diberikan akan diakses pada masa hadapan. Selain itu, jika corak akses data anda hampir menyerupai undang-undang kuasa, kebanyakan akses akan berada dalam set utama yang boleh dikendalikan dengan baik oleh algoritma penghampiran LRU.

Mari kita bincangkan tentang strategi penghapusan cache RedisKelemahan: Sebilangan besar data sejuk boleh diakses dalam tempoh masa tertentu untuk menjana sejumlah besar data panas

LFU 算法

从 Redis 4.0 开始,可以使用新的最不常用驱逐模式。这种模式在某些情况下可能会更好(提供更好的命中率/未命中率),因为使用 LFU Redis 会尝试跟踪项目的访问频率,因此很少使用的项目会被驱逐,而经常使用的项目有更高的机会留在记忆中。

如果您认为在 LRU,最近访问过但实际上几乎从未被请求过的项目不会过期,因此风险是驱逐将来有更高机会被请求的密钥。LFU 没有这个问题,一般应该更好地适应不同的访问模式。

配置LFU模式,可以使用以下策略:

  • volatile-lfu 在具有过期集的键中使用近似 LFU 驱逐。
  • allkeys-lfu 使用近似 LFU 驱逐任何密钥。

LFU 类似于 LRU:它使用一个概率计数器,称为莫里斯计数器,以便仅使用每个对象的几位来估计对象访问频率,并结合衰减周期,以便计数器随着时间的推移而减少:在某些时候,我们不再希望将密钥视为经常访问的密钥,即使它们过去是这样,以便算法可以适应访问模式的转变。

这些信息的采样与 LRU 发生的情况类似(如本文档的前一部分所述),以便选择驱逐的候选人。

然而,与 LRU 不同的是,LFU 具有某些可调参数:例如,如果不再访问频繁项,它的排名应该以多快的速度降低?还可以调整 Morris 计数器范围,以便更好地使算法适应特定用例。

默认情况下,Redis 4.0 配置为:

  • 在大约一百万个请求时使计数器饱和。
  • 每一分钟衰减一次计数器。

这些应该是合理的值并经过实验测试,但用户可能希望使用这些配置设置以选择最佳值。

有关如何调整这些参数的说明可以redis.conf在源代码分发的示例文件中找到,但简单地说,它们是:

lfu-log-factor 10 
lfu-decay-time 1

衰减时间是显而易见的,它是计数器应该衰减的分钟数,当采样并发现它比该值更旧时。一个特殊值0意味着:每次扫描时总是衰减计数器,很少有用。

计数器对数因子会改变需要多少次命中才能使频率计数器饱和,这恰好在 0-255 的范围内。系数越高,需要越多的访问以达到最大值。根据下表,系数越低,低访问计数器的分辨率越好:

+--------+------------+------------+------------+------------+------------+
| factor | 100 hits   | 1000 hits  | 100K hits  | 1M hits    | 10M hits   |
+--------+------------+------------+------------+------------+------------+
| 0      | 104        | 255        | 255        | 255        | 255        |
+--------+------------+------------+------------+------------+------------+
| 1      | 18         | 49         | 255        | 255        | 255        |
+--------+------------+------------+------------+------------+------------+
| 10     | 10         | 18         | 142        | 255        | 255        |
+--------+------------+------------+------------+------------+------------+
| 100    | 8          | 11         | 49         | 143        | 255        |
+--------+------------+------------+------------+------------+------------+

淘汰最近一段时间被访问次数最少的数据,以次数作为参考。

缺点:

1. 最近加入的数据常常容易被剔除,因为其起始方法次数比较少,

2. 如果频率时间度量为 1 个小时,则平均一天每个小时内访问频率 1000 的热点数据可能会被 2个小时的一段时间访问的频率为 1001 的数据剔除掉。可能会出现一些临界值的数据。

缓存策略设置建议

建议:了解Redis 的淘汰策略之后,在平时使用尽量主动设置/更新 key 的 expire 时间主动剔除不活跃的旧数据, 有助于提升查询性能

更多编程相关知识,请访问:编程入门!!

Atas ialah kandungan terperinci Mari kita bincangkan tentang strategi penghapusan cache Redis. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Artikel ini dikembalikan pada:掘金社区. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Redis: Membentangkan tujuan dan aplikasi utamaRedis: Membentangkan tujuan dan aplikasi utamaMay 03, 2025 am 12:11 AM

Redisisanopen-Source, In-MenoryDataStructureStoreusedasadatabase, Cache, andMessageBroker, ExcellingInspeedandversatility.Iswidelyededforcaching, Real-Timeanalytics, sessionManagement, danSleaderboardsDuetoitssupportorvariousdatastructures

Redis: Panduan ke kedai data nilai kunciRedis: Panduan ke kedai data nilai kunciMay 02, 2025 am 12:10 AM

REDIS adalah penyimpanan struktur data memori sumber terbuka yang digunakan sebagai pangkalan data, cache dan broker mesej, sesuai untuk senario di mana tindak balas pantas dan kesesuaian tinggi diperlukan. 1.Redis menggunakan memori untuk menyimpan data dan menyediakan mikrosecond membaca dan menulis kelajuan. 2. Ia menyokong pelbagai struktur data, seperti rentetan, senarai, koleksi, dan sebagainya. 3. Redis menyedari kegigihan data melalui mekanisme RDB dan AOF. 4. Gunakan model tunggal dan teknologi multiplexing untuk mengendalikan permintaan dengan cekap. 5. Strategi Pengoptimuman Prestasi termasuk algoritma LRU dan mod kluster.

Redis: caching, pengurusan sesi, dan banyak lagiRedis: caching, pengurusan sesi, dan banyak lagiMay 01, 2025 am 12:03 AM

Fungsi Redis terutamanya termasuk cache, pengurusan sesi dan fungsi lain: 1) Fungsi cache menyimpan data melalui memori untuk meningkatkan kelajuan bacaan, dan sesuai untuk senario akses frekuensi tinggi seperti laman web e-dagang; 2) Fungsi Pengurusan Sesi Saham data sesi dalam sistem yang diedarkan dan secara automatik membersihkannya melalui mekanisme masa tamat; 3) Fungsi lain seperti mod penerbitan-langganan, kunci dan kaunter yang diedarkan, sesuai untuk push mesej masa nyata dan sistem multi-threaded dan senario lain.

Redis: Meneroka fungsi dan faedah terasnyaRedis: Meneroka fungsi dan faedah terasnyaApr 30, 2025 am 12:22 AM

Fungsi teras Redis termasuk penyimpanan memori dan mekanisme ketekunan. 1) Penyimpanan memori menyediakan kelajuan membaca dan menulis yang sangat cepat, sesuai untuk aplikasi berprestasi tinggi. 2) Kegigihan memastikan data tidak hilang melalui RDB dan AOF, dan pilihannya berdasarkan keperluan aplikasi.

Operasi sisi pelayan Redis: Apa yang ditawarkannyaOperasi sisi pelayan Redis: Apa yang ditawarkannyaApr 29, 2025 am 12:21 AM

Redis'sserver-sideoperatiationofferfunctionsandtrigerforexecutingcomplexoperationsontheserver.1) functionsallowcustomoperationsinlua, javascript, orredis'ssscriptinglanguage, enhancingssionability

Redis: Pangkalan data atau pelayan? Demystifying perananRedis: Pangkalan data atau pelayan? Demystifying perananApr 28, 2025 am 12:06 AM

Redisisbothadatabaseandaserver.1) asadatabase, itusesin-memorystorageforfastaccess, idealforreal-timeapplicationsandcaching.2) asaserver, itsupportspub/submessagingandluascriptingforreal-timecommunicationandserver-sideoperations.

Redis: Kelebihan Pendekatan NoSQLRedis: Kelebihan Pendekatan NoSQLApr 27, 2025 am 12:09 AM

Redis adalah pangkalan data NoSQL yang menyediakan prestasi dan fleksibiliti yang tinggi. 1) Simpan data melalui pasangan nilai utama, sesuai untuk memproses data berskala besar dan kesesuaian yang tinggi. 2) Penyimpanan memori dan model tunggal threaded memastikan bacaan dan tulis dan atom yang cepat. 3) Gunakan mekanisme RDB dan AOF untuk meneruskan data, menyokong ketersediaan dan skala yang tinggi.

Redis: Memahami seni bina dan tujuannyaRedis: Memahami seni bina dan tujuannyaApr 26, 2025 am 12:11 AM

Redis adalah sistem penyimpanan struktur data memori, terutamanya digunakan sebagai pangkalan data, cache dan broker mesej. Ciri-ciri terasnya termasuk model tunggal, multiplexing I/O, mekanisme ketekunan, replikasi dan fungsi clustering. Redis biasanya digunakan dalam aplikasi praktikal untuk caching, penyimpanan sesi, dan beratur mesej. Ia dapat meningkatkan prestasinya dengan memilih struktur data yang betul, menggunakan saluran paip dan urus niaga, dan pemantauan dan penalaan.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

Dreamweaver Mac版

Dreamweaver Mac版

Alat pembangunan web visual

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa