cari
Rumahpangkalan dataRedisCara menggunakan kaedah penerbitan dan langgan redis untuk melaksanakan sistem pemesejan yang mudah

I. Penggunaan asas

1. Konfigurasi

Kami menggunakan SpringBoot 2.2.1.RELEASE untuk membina persekitaran projek dan menambah pergantungan redis secara langsung dalam pom.xml

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

Jika Redis kami ialah konfigurasi lalai, jadi anda tidak perlu menambah sebarang konfigurasi tambahan; anda juga boleh mengkonfigurasinya secara langsung dalam konfigurasi application.yml, seperti berikut

spring:
  redis:
    host: 127.0.0.1
    port: 6379
    password:

2 Gunakan postur terbitkan/langganan

redis, terutamanya Hanya gunakan dua arahan publish/subscribe; Agak mudah untuk menggunakan mod terbitkan dan langgan dalam SpringBoot Dengan bantuan RedisTemplate, ia boleh direalisasikan dengan mudah

a. Penerbitan mesej

@Service
public class PubSubBean {
    @Autowired
    private StringRedisTemplate redisTemplate;

    public void publish(String key, String value) {
        redisTemplate.execute(new RedisCallback<Object>() {
            @Override
            public Object doInRedis(RedisConnection redisConnection) throws DataAccessException {
                redisConnection.publish(key.getBytes(), value.getBytes());
                return null;
            }
        });
    }
}

b. Mesej langganan

Langganan mesej di sini, sila ambil perhatian bahawa kami menggunakan org.springframework.data.redis.connection.MessageListener untuk melaksanakan logik penggunaan

public void subscribe(MessageListener messageListener, String key) {
    redisTemplate.execute(new RedisCallback<Object>() {
        @Override
        public Object doInRedis(RedisConnection redisConnection) throws DataAccessException {
            redisConnection.subscribe(messageListener, key.getBytes());
            return null;
        }
    });
}

c 🎜>Tulis kes ujian mudah untuk mengesahkan penerbitan dan langgan di atas, mari kita fahami postur penggunaan

ini; kami membuat projek WEB mudah yang menyediakan dua antara muka rehat

@RestController
@RequestMapping(path = "rest")
public class DemoRest {
    @Autowired
    private PubSubBean pubSubBean;

    // 发布消息
    @GetMapping(path = "pub")
    public String pubTest(String key, String value) {
        pubSubBean.publish(key, value);
        return "over";
    }

    // 新增消费者
    @GetMapping(path = "sub")
    public String subscribe(String key, String uuid) {
        pubSubBean.subscribe(new MessageListener() {
            @Override
            public void onMessage(Message message, byte[] bytes) {
                System.out.println(uuid + " ==> msg:" + message);
            }
        }, key);
        return "over";
    }
}
MessageListener Kami dahulu. buat dua pengguna, dan kemudian apabila menghantar mesej, kedua-duanya menerimanya ; Tambah pengguna lain, dan apabila menghantar mesej, ketiga-tiganya boleh menerimanya

3 Arahan dan senario aplikasi

Terbit dan langgan Redis hanya sesuai untuk senario yang agak mudah Ia juga boleh dilihat daripada arahan di atas bahawa ia adalah model terbitan dan langgan yang mudah, menyokong 1 hingga N, dan mesej yang dihantar hanya boleh diperolehi oleh pengguna dalam talian (seperti. bagi yang tak online, boleh dikatakan kesian ) Dan untuk redis, habis sekali mesej di tolak keluar Penekanan:

Hanya pengguna dalam talian boleh menerima mesej

  • Pengguna hanya boleh mendapat mesej sekali

  • Masalah seterusnya datang, Dalam senario apakah redis boleh menerbitkan dan melanggan digunakan?

Ketidaksahihan cache berasaskan memori

Menggunakan reids + memori sebagai cache sekunder boleh dikatakan sebagai kaedah yang agak biasa Dengan bantuan cache berasaskan memori, ia boleh berkesan Meningkatkan beban sistem, tetapi masalahnya juga jelas Ketidaksahihan data cache dalam memori adalah masalah, terutamanya apabila aplikasi digunakan pada berbilang pelayan Jika saya ingin membatalkan cache memori tertentu semua pelayan di pada masa yang sama, menggunakan redis publish/subscribe ialah pilihan yang lebih baik

Muat semula konfigurasi SpringCloud Config

Rakan yang menggunakan SpringCloud Config sebagai pusat konfigurasi mungkin sering menghadapi masalah ini, penyegaran dinamik selepas pengubahsuaian konfigurasi adalah masalah (sudah tentu, sokongan rasmi adalah untuk menyegerakkan melalui bas melalui mq, dan ia juga boleh disegarkan semula secara paksa melalui pentadbir but spring) Dengan bantuan redis publish/subscribe , ia juga merupakan alternatif yang baik untuk mencapai penyegaran dinamik konfigurasi (kemudian demo pelaksanaan khusus diberikan. Jika anda berminat, sila teruskan mengikuti Blog Yihuihui)

langganan tidak sah kunci redis

Apabila kami menggunakan redis untuk caching, kami biasanya Masa tamat tempoh akan ditetapkan, yang tidak didayakan secara lalai Kami juga boleh melanggan acara pembatalan cache melalui langganUbah suai konfigurasi dan dayakan acara pembatalan kunci

notify-keyspace-events Ex

Selepas memulakan semula redis, langgan acara tidak sah

subscribe __keyevent@0__:expired

Atas ialah kandungan terperinci Cara menggunakan kaedah penerbitan dan langgan redis untuk melaksanakan sistem pemesejan yang mudah. 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: 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.

Pangkalan Data Redis vs SQL: Perbezaan UtamaPangkalan Data Redis vs SQL: Perbezaan UtamaApr 25, 2025 am 12:02 AM

Perbezaan utama antara pangkalan data REDIS dan SQL ialah REDIS adalah pangkalan data dalam memori, sesuai untuk keperluan prestasi tinggi dan fleksibiliti; Pangkalan data SQL adalah pangkalan data relasi, sesuai untuk pertanyaan kompleks dan keperluan konsistensi data. Khususnya, 1) REDIS menyediakan akses data berkelajuan tinggi dan perkhidmatan caching, menyokong pelbagai jenis data, sesuai untuk pemprosesan data caching dan masa nyata; 2) Pangkalan data SQL menguruskan data melalui struktur jadual, menyokong pertanyaan kompleks dan pemprosesan transaksi, dan sesuai untuk senario seperti sistem e-dagang dan kewangan yang memerlukan konsistensi data.

Redis: Bagaimana ia berfungsi sebagai kedai data dan perkhidmatanRedis: Bagaimana ia berfungsi sebagai kedai data dan perkhidmatanApr 24, 2025 am 12:08 AM

Redisactsasbothadatastoreandaservice.1) asadatastore, itusesin-memorystorageforfastoperations, supportingvariousdataStructuresLikey-valueepairsandsortedsets.2) asaservice, itprovidesfunctionalitiesticePub/subdressageSpleSclePing

Redis vs Pangkalan Data Lain: Analisis PerbandinganRedis vs Pangkalan Data Lain: Analisis PerbandinganApr 23, 2025 am 12:16 AM

Berbanding dengan pangkalan data lain, REDIS mempunyai kelebihan unik berikut: 1) kelajuan yang sangat cepat, dan membaca dan menulis operasi biasanya pada tahap microsecond; 2) menyokong struktur dan operasi data yang kaya; 3) Senario penggunaan fleksibel seperti cache, kaunter dan menerbitkan langganan. Apabila memilih REDI atau pangkalan data lain, ia bergantung kepada keperluan dan senario khusus. Redis berfungsi dengan baik dalam aplikasi berprestasi tinggi dan rendah latency.

Peranan Redis: Meneroka Keupayaan Penyimpanan Data dan PengurusanPeranan Redis: Meneroka Keupayaan Penyimpanan Data dan PengurusanApr 22, 2025 am 12:10 AM

Redis memainkan peranan penting dalam penyimpanan dan pengurusan data, dan telah menjadi teras aplikasi moden melalui pelbagai struktur data dan mekanisme kegigihannya. 1) REDIS menyokong struktur data seperti rentetan, senarai, koleksi, koleksi yang diperintahkan dan jadual hash, dan sesuai untuk logik perniagaan cache dan kompleks. 2) Melalui dua kaedah ketekunan, RDB dan AOF, Redis memastikan penyimpanan yang boleh dipercayai dan pemulihan data yang cepat.

Redis: Memahami Konsep NoSQLRedis: Memahami Konsep NoSQLApr 21, 2025 am 12:04 AM

Redis adalah pangkalan data NoSQL yang sesuai untuk penyimpanan dan akses data berskala besar. 1.Redis adalah sistem penyimpanan struktur data memori sumber terbuka yang menyokong pelbagai struktur data. 2. Ia menyediakan kelajuan membaca dan menulis yang sangat cepat, sesuai untuk caching, pengurusan sesi, dan lain -lain. 3.DIS menyokong kegigihan dan memastikan keselamatan data melalui RDB dan AOF. 4. Contoh penggunaan termasuk operasi pasangan nilai utama dan fungsi deduplikasi koleksi lanjutan. 5. Kesilapan umum termasuk masalah sambungan, jenis data yang tidak sepadan dan limpahan memori, jadi anda perlu memberi perhatian kepada debugging. 6. Cadangan Pengoptimuman Prestasi termasuk memilih struktur data yang sesuai dan menubuhkan strategi penghapusan memori.

Redis: Kes penggunaan dan contoh dunia sebenarRedis: Kes penggunaan dan contoh dunia sebenarApr 20, 2025 am 12:06 AM

Aplikasi REDIS di dunia nyata termasuk: 1. Kepelbagaian Redis dan prestasi tinggi menjadikannya bersinar dalam senario ini.

Redis: meneroka ciri dan fungsinyaRedis: meneroka ciri dan fungsinyaApr 19, 2025 am 12:04 AM

Redis menonjol kerana kelajuan tinggi, fleksibiliti dan struktur data yang kaya. 1) Redis menyokong struktur data seperti rentetan, senarai, koleksi, hash dan koleksi yang diperintahkan. 2) Ia menyimpan data melalui ingatan dan menyokong RDB dan AOF kegigihan. 3) Bermula dari Redis 6.0, operasi I/O multi-threaded telah diperkenalkan, yang telah meningkatkan prestasi dalam senario konvensional yang tinggi.

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

mPDF

mPDF

mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

SecLists

SecLists

SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna