Jadual Kandungan
1. Masalah dengan satu titik Redis
Nama penuh RDB ialah fail Sandaran Pangkalan Data Redis (fail sandaran data Redis), juga dipanggil petikan data Redis. Secara ringkasnya, semua data dalam memori direkodkan ke cakera. Apabila contoh Redis gagal dan dimulakan semula, fail syot kilat dibaca dari cakera dan data dipulihkan.
4. Proses jualan kilat pengoptimuman Redis
1 Langkah jualan kilat:
rreeee
Rumah pangkalan data Redis Cara melaksanakan cache dan jualan kilat yang diedarkan Redis

Cara melaksanakan cache dan jualan kilat yang diedarkan Redis

Jun 02, 2023 pm 11:43 PM
redis

1. Masalah dengan satu titik Redis

1.

2. Isu Concurrency

Kelompok tuan-hamba kami menyedari pemisahan membaca dan menulis.

3. Isu pemulihan kegagalan

Gunakan Redis Sentinel untuk melaksanakan pengesanan kesihatan dan pemulihan automatik.

4. Isu kapasiti storan

Bina gugusan berpecah dan gunakan mekanisme slot untuk mencapai pengembangan dinamik.

2. RDB

Nama penuh RDB ialah fail Sandaran Pangkalan Data Redis (fail sandaran data Redis), juga dipanggil petikan data Redis. Secara ringkasnya, semua data dalam memori direkodkan ke cakera. Apabila contoh Redis gagal dan dimulakan semula, fail syot kilat dibaca dari cakera dan data dipulihkan.

Fail syot kilat dipanggil fail RDB dan disimpan dalam direktori semasa yang sedang berjalan secara lalai.


Redis mempunyai mekanisme dalaman untuk mencetuskan RDB, yang boleh didapati dalam fail redis.conf Formatnya adalah seperti berikut:

Cara melaksanakan cache dan jualan kilat yang diedarkan RedisApabila bgsave. arahan dilaksanakan, garpu akan diluluskan Panggilan sistem mencipta proses anak yang berkongsi data memori dengan proses utama. Selepas melengkapkan garpu, baca data memori dan tuliskannya ke fail RDB.

fork menggunakan teknologi salin atas tulis:

    Apabila proses utama menjalankan operasi baca, memori dikongsi diakses; >
  • Apabila proses utama melakukan operasi tulis, ia akan menyalin salinan data dan melaksanakan operasi tulis;

  • Bantu proses utama untuk mendapatkan proses kanak-kanak dan berkongsi ruang memori

Proses kanak-kanak membaca data memori dan menulis yang baharu; Fail RDB;

  1. Ganti fail RDB lama dengan fail RDB baharu; dihukum bunuh? Apakah maksud simpan 60 1000?

  2. Lalai ialah apabila perkhidmatan dihentikan; 🎜>

  3. Kelemahan RDB?
  4. Selang pelaksanaan RDB adalah panjang, dan terdapat risiko kehilangan data antara dua penulisan RDB; , tulis Memakan masa untuk menjana fail RDB;

Cara melaksanakan cache dan jualan kilat yang diedarkan Redis

Kekerapan rakaman arahan AOF juga boleh dikonfigurasikan melalui fail redis.conf:

3
  • AOF bermaksud Append Only File. Setiap arahan tulis yang diproses oleh Redis akan direkodkan dalam fail AOF, yang boleh dianggap sebagai fail log arahan.

    AOF dimatikan secara lalai Anda perlu mengubah suai fail konfigurasi redis.conf untuk mendayakan AOF:
  • Kekerapan rakaman arahan AOF juga boleh. melalui Fail redis.conf untuk dipadankan:

  • Kerana ia adalah arahan rakaman, fail AOF akan lebih besar daripada fail RDB. Walaupun AOF akan merekodkan berbilang operasi tulis pada kekunci yang sama, hanya operasi tulis terakhir di antaranya yang bermakna. Anda boleh menggunakan perintah bgrewriteaof untuk melengkapkan fungsi penulisan semula fail AOF dengan bilangan arahan minimum.

    set id 1
    set name nezha
    set id 2
    
    bgrewriteaof
    
    mset name nezha id 2
    Salin selepas log masuk

    Redis juga akan menulis semula fail AOF secara automatik apabila ambang dicetuskan. Ambang juga boleh dikonfigurasikan dalam redis.conf:

    # Peratusan di mana fail AOF berkembang berbanding fail terakhir akan mencetuskan penulisan semula auto-aof-rewrite-percentage 100# Apakah minimum saiz fail AOF? Trigger tulis semula auto-aof-rewrite-min-size 64mb

    RDB dan AOF masing-masing mempunyai kelebihan dan kekurangannya sendiri Jika keperluan keselamatan data lebih tinggi, kedua-duanya selalunya digabungkan dalam pembangunan sebenar untuk digunakan.


    RDBAOF
    持久化方式定时对整个内存做快照记录每一次执行的命令
    数据完整性不完整,两次备份之间会丢失相对完整,取决于刷盘策略
    文件大小会有压缩,文件体积小记录命令,文件体积很大
    宕机恢复速度很快
    数据恢复优先级低,因为数据完整性不低高,因为数据完整性更高
    系统资源占用高,大量CPU和内存消耗低,主要是磁盘IO资源,但AOF重写时会占用大量CPU和内存资源
    使用场景可以容忍数分钟的数据丢失,追求更快的启动速度对数据安全性要求较高常见

    4. Proses jualan kilat pengoptimuman Redis

    1 Langkah jualan kilat:

    1. Semak kupon

    2. Tentukan inventori produk jualan kilat;

    3. Semak pesanan

    4. Sahkan satu pesanan setiap orang;

    5. Kurangkan inventori;

    6. Buat pesanan; langkah jualan kilat:

    Tambahkan kupon jualan kilat dan simpan maklumat kupon ke Redis; inventori produk, satu setiap orang Pesan, tentukan sama ada jualan kilat pengguna berjaya Cara melaksanakan cache dan jualan kilat yang diedarkan Redis

    Jika jualan kilat berjaya, masukkan id kupon, id pengguna dan id produk ke dalam penyekatan; baris gilir;
    1. Dayakan tugas tak segerak, baca secara berterusan maklumat daripada baris gilir penyekat, dan realisasikan fungsi pesanan tak segerak; >
    2. 3. Skrip Lua untuk jualan kilat
    3. 4. Panggil skrip Lua untuk jualan kilat

      public Result seckillVoucher(Long voucherId) {
           Long userId = UserHolder.getUser().getId();
           long orderId = redisIdWorker.nextId("order");
           // 1.执行lua脚本
           Long result = stringRedisTemplate.execute(
                   SECKILL_SCRIPT,
                   Collections.emptyList(),
                   voucherId.toString(), userId.toString(), String.valueOf(orderId)
           );
           int r = result.intValue();
           // 2.判断结果是否为0
           if (r != 0) {
               // 2.1.不为0 ,代表没有购买资格
               return Result.fail(r == 1 ? "库存不足" : "不能重复下单");
           }
           // 3.返回订单id
           return Result.ok(orderId);
       }
      Salin selepas log masuk

      5 kumpulan benang
    4. // 线程池
      private static final ExecutorService SECKILL_ORDER_EXECUTOR = Executors.newSingleThreadExecutor();
      
      /**
      * 在类初始化完成后执行
      */
      @PostConstruct
      private void init() {
          SECKILL_ORDER_EXECUTOR.submit(new VoucherOrderHandler());
      }
      
      // 阻塞队列
      private BlockingQueue<VoucherOrder> orderTasks = new ArrayBlockingQueue<>(1024 * 1024);
      private class OrderHandler implements Runnable{
      
          @Override
          public void run() {
              while (true){
                  try {
                      doSomething();
                  } catch (Exception e) {
                      log.error("处理订单异常", e);
                  }
              }
          }
      }
      Salin selepas log masuk
    5. 5 Laksanakan sesi kongsi berdasarkan Log Masuk Redis

      Log masuk berdasarkan sesi
    6. Cara melaksanakan cache dan jualan kilat yang diedarkan Redis

      Sesi kongsi log masuk berdasarkan Redis

      rreeee

      Cara melaksanakan cache dan jualan kilat yang diedarkan Redis

Atas ialah kandungan terperinci Cara melaksanakan cache dan jualan kilat yang diedarkan Redis. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

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

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara Membina Mod Kluster Redis Cara Membina Mod Kluster Redis Apr 10, 2025 pm 10:15 PM

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

Cara melaksanakan redis yang mendasari Cara melaksanakan redis yang mendasari Apr 10, 2025 pm 07:21 PM

Redis menggunakan jadual hash untuk menyimpan data dan menyokong struktur data seperti rentetan, senarai, jadual hash, koleksi dan koleksi yang diperintahkan. Redis berterusan data melalui snapshots (RDB) dan menambah mekanisme tulis sahaja (AOF). Redis menggunakan replikasi master-hamba untuk meningkatkan ketersediaan data. Redis menggunakan gelung acara tunggal untuk mengendalikan sambungan dan arahan untuk memastikan atom dan konsistensi data. Redis menetapkan masa tamat tempoh untuk kunci dan menggunakan mekanisme memadam malas untuk memadamkan kunci tamat tempoh.

Apa yang perlu dilakukan sekiranya pelayan redis tidak dapat dijumpai Apa yang perlu dilakukan sekiranya pelayan redis tidak dapat dijumpai Apr 10, 2025 pm 06:54 PM

Langkah-langkah untuk menyelesaikan masalah yang tidak dapat dijumpai oleh Redis-Server: periksa pemasangan untuk memastikan Redis dipasang dengan betul; Tetapkan pembolehubah persekitaran redis_host dan redis_port; Mulakan Redis Server Redis-server; Semak sama ada pelayan sedang menjalankan ping redis-cli.

Bagaimana kelompok redis dilaksanakan Bagaimana kelompok redis dilaksanakan Apr 10, 2025 pm 05:27 PM

Redis Cluster adalah model penempatan yang diedarkan yang membolehkan pengembangan mendatar contoh Redis, dan dilaksanakan melalui komunikasi antara nod, ruang utama slot hash, pilihan raya nod, replikasi master-hamba dan pengalihan arahan: Komunikasi antara nod: Komunikasi rangkaian maya direalisasikan melalui bas kluster. Slot hash: Membahagikan ruang utama ke dalam slot hash untuk menentukan nod yang bertanggungjawab untuk kunci. Pilihan Raya Nod: Sekurang -kurangnya tiga nod induk diperlukan, dan hanya satu nod induk aktif yang dipastikan melalui mekanisme pilihan raya. Replikasi Master-Slave: Node Master bertanggungjawab untuk menulis permintaan, dan nod hamba bertanggungjawab untuk permintaan membaca dan replikasi data. Pengalihan Perintah: Pelanggan menghubungkan ke nod yang bertanggungjawab untuk kunci, dan nod mengalihkan permintaan yang salah. Penyelesaian masalah: Pengesanan kesalahan, menandakan garis dan

Cara Melihat Semua Kekunci di Redis Cara Melihat Semua Kekunci di Redis Apr 10, 2025 pm 07:15 PM

Untuk melihat semua kunci di Redis, terdapat tiga cara: Gunakan perintah kunci untuk mengembalikan semua kunci yang sepadan dengan corak yang ditentukan; Gunakan perintah imbasan untuk melangkah ke atas kunci dan kembalikan satu set kunci; Gunakan arahan maklumat untuk mendapatkan jumlah kunci.

Cara menggunakan redis zset Cara menggunakan redis zset Apr 10, 2025 pm 07:27 PM

Redis memerintahkan set (ZSET) digunakan untuk menyimpan elemen yang diperintahkan dan disusun mengikut skor yang berkaitan. Langkah -langkah untuk menggunakan ZSET termasuk: 1. Buat zset; 2. Tambah ahli; 3. Dapatkan skor ahli; 4. Dapatkan kedudukan; 5. Dapatkan ahli dalam julat ranking; 6. Padam ahli; 7. Dapatkan bilangan elemen; 8. Dapatkan bilangan ahli dalam julat skor.

Cara melihat nombor versi Redis Cara melihat nombor versi Redis Apr 10, 2025 pm 05:57 PM

Untuk melihat nombor versi REDIS, anda boleh menggunakan tiga kaedah berikut: (1) Masukkan arahan INFO, (2) Mulakan pelayan dengan pilihan --version, dan (3) Lihat fail konfigurasi.

Bagaimana kunci unik untuk pertanyaan redis Bagaimana kunci unik untuk pertanyaan redis Apr 10, 2025 pm 07:03 PM

Redis menggunakan lima strategi untuk memastikan keunikan kekunci: 1. Pemisahan ruang nama; 2. Struktur data hash; 3. Tetapkan struktur data; 4. Karakter Khas Kekunci String; 5. Pengesahan skrip Lua. Pilihan strategi khusus bergantung kepada organisasi data, prestasi, dan keperluan skalabilitas.

See all articles