Rumah > pangkalan data > Redis > Redis: alat rahsia untuk pemprosesan log masa nyata yang cekap

Redis: alat rahsia untuk pemprosesan log masa nyata yang cekap

王林
Lepaskan: 2023-11-07 14:48:26
asal
691 orang telah melayarinya

Redis: alat rahsia untuk pemprosesan log masa nyata yang cekap

Redis: Alat rahsia untuk pemprosesan log masa nyata yang cekap

Dengan populariti sistem log, pemprosesan log telah menjadi bahagian yang sangat penting dalam teknologi perisian. Log boleh memberikan maklum balas dan data masa nyata kepada pembangun, membantu mengesan masalah dalam program dengan cepat. Walau bagaimanapun, apabila skala perusahaan besar dan konkurensi sistem adalah tinggi, pemprosesan log menjadi tugas yang sangat mencabar. Penyelesaian pemprosesan log tradisional menggunakan pangkalan data hubungan untuk penyimpanan Walaupun penyelesaian ini boleh dilaksanakan, ia terdedah kepada kesesakan prestasi dalam senario konkurensi yang tinggi. Untuk menyelesaikan masalah ini, banyak syarikat telah mula menggunakan Redis sebagai alat untuk menyimpan dan memproses log.

Redis ialah sistem storan nilai kunci berprestasi tinggi Ia dicirikan dengan menyokong struktur data yang kaya, seperti rentetan, cincang, senarai, set, set tersusun, dll., yang boleh memenuhi hampir semua keperluan dalam penyimpanan dan pemprosesan log. . Selain itu, Redis mempunyai banyak kelebihan seperti membaca dan menulis berkelajuan tinggi, pemprosesan serentak tinggi, dan sokongan untuk ketekunan data Ia sangat sesuai sebagai alat untuk pemprosesan log masa nyata.

Seterusnya, kami akan memperkenalkan secara terperinci cara Redis memproses log masa nyata dan memberikan contoh kod yang berkaitan:

1 Redis sebagai baris gilir log

Apabila log masa nyata yang besar-besaran perlu diproses dengan cepat, strategi yang biasa adalah untuk. gunakan Log giliran. Redis menyokong berbilang struktur data seperti senarai dan set, antaranya struktur data senarai sesuai dengan ciri baris gilir. Kita boleh menolak rekod log ke senarai dan kemudian membaca rekod daripada senarai untuk diproses. Kaedah ini mempunyai kelebihan kependaman rendah, ketersediaan tinggi dan penggunaan teragih yang mudah.

Berikut ialah contoh kod Java yang menunjukkan cara untuk menolak rekod log ke dalam struktur data senarai Redis:

Jedis jedis = new Jedis("localhost");
String log = "2021-06-01 13:30:29 INFO - User Login";
jedis.rpush("log_queue", log);
Salin selepas log masuk

Di sini kami menggunakan klien Java Redis Jedis, mula-mula menyambung ke contoh Redis, dan kemudian gunakan perintah rpush untuk menolak rekod log ke log_queue Tolak rekod log ke dalam struktur data senarai.

Seterusnya, kami membaca rekod daripada log_queue dan memprosesnya:

while (true) {
   List<String> logs = jedis.brpop(0, "log_queue");
   for (String log : logs) {
      System.out.println(log);   
   }
}
Salin selepas log masuk

Di sini, rekod log muncul dari penghujung log_queue dengan melaksanakan arahan brpop secara berterusan. Apabila baris gilir kosong, arahan brpop menyekat sehingga rekod baharu ditolak ke dalam baris gilir. Dengan cara ini kita boleh mencapai tujuan mendapatkan log masa nyata.

2. Redis sebagai pengumpul log

Apabila kita perlu mengumpul log aplikasi, kita boleh menggunakan Redis sebagai pengumpul log berpusat. Secara khusus, kita boleh menentukan pemproses log dalam aplikasi, yang bertanggungjawab untuk menolak rekod log program semasa ke dalam contoh Redis. Pada masa yang sama, proses lain boleh membaca dan memproses semua rekod log daripada Redis. Pendekatan ini mempunyai kelebihan gandingan rendah, pengembangan mudah, dan penyepaduan mudah.

Berikut ialah contoh kod Java yang menunjukkan cara menggunakan rangka kerja log4j untuk menolak log masuk ke dalam Redis:

1 Tambah kebergantungan dalam fail pom.xml:

<dependency>    
    <groupId>org.slf4j</groupId>    
    <artifactId>slf4j-log4j12</artifactId>    
    <version>1.7.25</version>
</dependency>
<dependency>    
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>    
    <version>3.6.1</version>    
</dependency> 
Salin selepas log masuk

2

3 , takrifkan logger log4j dalam kod Java, dan tolak log masuk ke Redis:

log4j.appender.redis=org.apache.log4j.net.SocketAppender    
log4j.appender.redis.remoteHost=localhost    
log4j.appender.redis.port=6379    
log4j.appender.redis.reconnectionDelay=10000    
log4j.appender.redis.locationInfo=true
log4j.appender.redis.layout=org.apache.log4j.PatternLayout    
log4j.appender.redis.layout.ConversionPattern=%m%n
Salin selepas log masuk
Di sini kita takrifkan objek Logger dan gunakan kaedah nyahpepijat untuk mengeluarkan "Hello, World!". Pada masa yang sama, kami menggunakan objek Jedis untuk menolak log ke dalam senarai bernama log.

Seterusnya, kita boleh menggunakan proses Java yang lain untuk membaca semua rekod dalam senarai log dan memprosesnya.

Di atas ialah pengenalan terperinci dan contoh kod Redis sebagai alat rahsia untuk memproses log masa nyata. Secara umum, Redis mempunyai prestasi dan kebolehskalaan yang sangat berkuasa, dan boleh digunakan untuk tugas pemprosesan log dalam pelbagai senario.

Atas ialah kandungan terperinci Redis: alat rahsia untuk pemprosesan log masa nyata yang cekap. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan