Redis
 sql >> Teknologi Basis Data >  >> NoSQL >> Redis

Kasus Penggunaan Redis Teratas menurut Jenis Struktur Data Inti

Redis, kependekan dari Remote Dictionary Server, adalah penyimpanan struktur data nilai kunci dalam memori sumber terbuka berlisensi BSD yang ditulis dalam bahasa C oleh Salvatore Sanfillipo dan pertama kali dirilis pada 10 Mei 2009. Bergantung pada cara konfigurasinya , Redis dapat bertindak seperti database, cache, atau perantara pesan. Penting untuk dicatat bahwa Redis adalah sistem database NoSQL. Ini menyiratkan bahwa tidak seperti sistem database yang digerakkan oleh SQL (Structured Query Language) seperti MySQL, PostgreSQL, dan Oracle, Redis tidak menyimpan data dalam skema database yang terdefinisi dengan baik yang merupakan tabel, baris, dan kolom. Sebaliknya, Redis menyimpan data dalam struktur data yang membuatnya sangat fleksibel untuk digunakan. Hosting ScaleGrid untuk Redis™* memungkinkan Anda mengotomatiskan operasi yang memakan waktu untuk berbagai kasus penggunaan Redis yang berbeda. Di blog ini, kami menguraikan kasus penggunaan Redis teratas berdasarkan jenis struktur data inti yang berbeda.

Struktur Data di Redis

Mari kita lihat beberapa jenis data yang didukung Redis. Di Redis, kami memiliki string, daftar, set, set yang diurutkan, dan hash, yang akan kami bahas dalam artikel ini. Selain itu, kami memiliki tipe data lain seperti bitmap, hyperloglog, dan indeks geospasial dengan kueri dan aliran radius. Meskipun ada beberapa alat GUI Redis yang ditulis oleh komunitas Redis, baris perintah sejauh ini merupakan klien yang paling penting, tidak seperti pengguna basis data SQL populer yang sering memilih sistem manajemen GUI, misalnya, phpMyAdmin untuk MySQL dan PgAdmin untuk PostgreSQL.

Mari kita lihat lebih dekat tipe data yang ada di Redis.

String Redis

Redis Strings adalah tipe paling dasar dari nilai Redis yang dimanfaatkan oleh semua tipe struktur data lainnya, dan sangat mirip dengan string dalam bahasa pemrograman lain seperti Java atau Python. String, yang dapat berisi tipe data apa pun, dianggap aman untuk biner dan memiliki panjang maksimum 512MB. Berikut adalah beberapa perintah yang berguna untuk string Redis:

Untuk menyimpan string 'john ' di bawah kunci seperti 'siswa' di Redis, jalankan perintah:

SETEL “siswa” “john”

Untuk mengambil string, gunakan perintah GET seperti yang ditunjukkan:

DAPATKAN “siswa”

Untuk menghapus string yang terdapat dalam kunci, gunakan perintah DEL:

DEL “siswa”

Kasus Penggunaan String Redis

  1. Cache Sesi: Banyak situs web memanfaatkan Redis Strings untuk membuat cache sesi guna mempercepat pengalaman situs web mereka dengan menyimpan fragmen atau halaman HTML. Karena data disimpan sementara di RAM, atribut ini menjadikan Redis pilihan yang sempurna sebagai cache sesi. Itu dapat menyimpan sementara data khusus pengguna, misalnya, item yang disimpan di keranjang belanja di toko online, yang sangat penting agar pengguna Anda tidak kehilangan data mereka jika mereka keluar atau kehilangan koneksi.
  2. Antrian: Aplikasi apa pun yang menangani kemacetan lalu lintas, pengiriman pesan, pengumpulan data, manajemen pekerjaan, atau perutean pengepakan harus mempertimbangkan Redis Queue, karena ini dapat membantu Anda mengelola ukuran antrean menurut tingkat kedatangan dan keberangkatan untuk distribusi sumber daya.
  3. Penggunaan &Penagihan Terukur: Kasus penggunaan yang kurang dikenal untuk Redis Strings adalah pengukuran waktu nyata untuk model penetapan harga berbasis konsumsi. Hal ini memungkinkan platform SaaS yang menagih berdasarkan penggunaan sebenarnya untuk mengukur aktivitas pelanggan mereka, seperti di industri telekomunikasi di mana mereka mungkin mengenakan biaya untuk pesan teks atau menit.

Daftar Redis

Daftar berisi string yang diurutkan menurut urutan penyisipannya. Dengan Daftar Redis, Anda dapat menambahkan item ke kepala atau ekor daftar, yang sangat berguna untuk pekerjaan antrian. Jika ada pekerjaan yang lebih mendesak yang Anda perlukan untuk dieksekusi, ini dapat didorong di depan pekerjaan prioritas lain yang lebih rendah dalam antrian. Kami akan menggunakan perintah LPUSH untuk menyisipkan elemen di kepala, atau kiri string, dan perintah RPUSH untuk menyisipkan di ekor, atau kanan string kami. Mari kita lihat contohnya:

daftar LPUSH x   # sekarang daftarnya adalah "x"

LPUSH daftar y   # sekarang daftarnya adalah "y","x"

RPUSH daftar z   # sekarang daftarnya adalah "y","x","z" (perhatikan bagaimana elemen 'z' ditambahkan ke akhir daftar dengan perintah RPUSH)

Kasus Penggunaan Daftar Redis

  1. Situs Jejaring Sosial: Platform sosial seperti Twitter menggunakan Daftar Redis untuk mengisi linimasa atau feed beranda mereka, dan dapat menyesuaikan bagian atas feed mereka dengan tweet atau cerita yang sedang tren.
  2. Umpan RSS: Buat umpan berita dari sumber khusus tempat Anda dapat memperoleh pembaruan terkini dan mengizinkan pengikut yang tertarik untuk berlangganan umpan RSS Anda.
  3. Papan Peringkat: Forum seperti Reddit dan platform pemungutan suara lainnya memanfaatkan Daftar Redis untuk menambahkan artikel ke papan peringkat dan mengurutkan berdasarkan entri yang paling banyak dipilih.

Pelajari cara membuat umpan Twitter Anda sendiri di tweet Caching kami menggunakan entri blog Node.js, Redis, dan Socket.io.

Kasus Penggunaan #Redis Teratas menurut Jenis Struktur Data IntiKlik Untuk Tweet

Set Redis

Set Redis adalah tipe data canggih yang mendukung operasi canggih seperti persimpangan dan gabungan. Mereka tidak dalam urutan apa pun dan biasanya digunakan ketika Anda ingin melakukan audit dan melihat hubungan antara berbagai variabel. Set cukup cepat, dan terlepas dari jumlah elemen yang telah Anda simpan, akan membutuhkan waktu yang sama untuk menambah atau menghapus item dalam satu set. Selanjutnya, set tidak mengizinkan kunci duplikat atau anggota duplikat, jadi kunci yang ditambahkan beberapa kali dalam satu set akan diabaikan begitu saja. Ini didorong oleh fungsi yang disebut SADD yang menghindari duplikasi beberapa entri serupa. Atribut SADD dapat digunakan saat memeriksa nilai unik, dan juga dapat digunakan untuk menjadwalkan tugas yang berjalan di latar belakang, termasuk tugas cron yang merupakan skrip otomatis.

Ini sangat membantu untuk menganalisis perilaku pelanggan waktu nyata untuk situs belanja online Anda. Misalnya, jika Anda menjalankan toko pakaian online, Redis Sorted Sets menggunakan teknik pencocokan hubungan seperti serikat pekerja, persimpangan, dan pengurangan (biasanya diterapkan dalam diagram Venn) untuk memberikan gambaran yang akurat tentang perilaku pelanggan. Anda dapat mengambil data tentang pola belanja antar gender, produk pakaian mana yang paling banyak terjual, dan jam berapa yang mencatat penjualan tertinggi.

Redis Menyetel Kasus Penggunaan

  1. Menganalisis Penjualan E-niaga: Banyak toko online menggunakan Redis Sets untuk menganalisis perilaku pelanggan, seperti pencarian atau pembelian untuk kategori atau subkategori produk tertentu. Misalnya, pemilik toko buku online dapat mengetahui berapa banyak pelanggan yang membeli buku kedokteran di Psikologi.
  2. Pelacakan Alamat IP: Redis Sets adalah alat yang hebat untuk pengembang yang ingin menganalisis semua alamat IP yang mengunjungi halaman situs web atau posting blog tertentu, dan untuk dapat mengabaikan semua duplikat untuk pengunjung unik dengan fungsi SADD mereka.
  3. Pemfilteran Konten yang Tidak Pantas: Untuk aplikasi apa pun yang mengumpulkan masukan pengguna, sebaiknya terapkan pemfilteran konten untuk kata-kata yang tidak pantas, dan Anda dapat melakukannya dengan Redis Sets dengan menambahkan kata yang ingin Anda filter ke kunci SET dan perintah SADD.

Set yang Diurutkan

Seperti namanya, Redis Sorted Sets adalah kumpulan string yang menetapkan urutan ke elemen Anda, dan merupakan salah satu struktur data paling canggih di Redis. Ini mirip dengan Set Redis, hanya saja Set tidak memiliki urutan sementara Set Terurut mengasosiasikan setiap anggota dengan skor. Kumpulan Terurut dikenal sangat cepat, karena Anda dapat mengembalikan daftar terurut dan mengakses elemen dalam waktu sesingkat mungkin.

Redis Sorted Set Use Cases

  1. Platform Tanya Jawab: Banyak platform Tanya Jawab seperti Stack Overflow dan Quora menggunakan Redis Sorted Sets untuk memberi peringkat jawaban dengan suara terbanyak untuk setiap pertanyaan yang diajukan guna memastikan konten dengan kualitas terbaik tercantum di bagian atas halaman.
  2. Papan Skor Aplikasi Game: Aplikasi game online memanfaatkan Redis Sorted Sets untuk mempertahankan daftar skor tinggi, karena skor dapat diulang, tetapi string yang berisi detail pengguna unik tidak dapat.
  3. Layanan Penjadwalan Tugas: Redis Sorted Sets adalah alat yang hebat untuk layanan penjadwalan tugas, karena Anda dapat mengaitkan skor untuk menentukan peringkat prioritas tugas dalam antrean Anda. Untuk tugas apa pun yang tidak mencatat skor, Anda dapat menggunakan opsi WEIGHTS ke default 1.
  4. Geo Hashing: Redis geo indexing API menggunakan Sorted Set untuk teknik Geo Hash yang memungkinkan Anda mengindeks lokasi berdasarkan garis lintang dan garis bujur, mengubah data multidimensi menjadi data linier.

Haha Redis

Hash Redis adalah peta antara bidang string dan nilai string. Ini adalah tipe data masuk jika Anda pada dasarnya perlu membuat wadah bidang unik dan nilainya untuk mewakili objek. Hash memungkinkan Anda untuk menyimpan jumlah bidang yang layak, hingga 232 – 1 pasangan nilai bidang (lebih dari 4 miliar), sambil menggunakan sangat sedikit ruang. Anda harus menggunakan Redis Hash jika memungkinkan, karena Anda dapat menggunakan instance Redis kecil untuk menyimpan jutaan objek. Anda dapat menggunakan operasi perintah hash dasar, seperti mendapatkan, menyetel, ada, selain banyak operasi lanjutan.

Kasus Penggunaan Redis Hash

  1. Profil Pengguna: Banyak aplikasi web menggunakan Redis Hash untuk profil penggunanya, karena mereka dapat menggunakan satu hash untuk semua bidang pengguna, seperti nama, nama keluarga, email, kata sandi, dll.
  2. Pos Pengguna: Platform sosial seperti Instagram memanfaatkan Redis Hash untuk memetakan semua foto atau kiriman pengguna yang diarsipkan kembali ke satu pengguna. Mekanisme hashing memungkinkan mereka untuk mencari dan mengembalikan nilai dengan sangat cepat, memasukkan data ke dalam memori, dan memanfaatkan kegigihan data jika salah satu server mereka mati.
  3. Menyimpan Metrik Multi-Penyewa: Aplikasi multi-penyewa dapat memanfaatkan hash Redis untuk merekam dan menyimpan metrik produk dan penjualan mereka dengan cara yang menjamin pemisahan yang solid antara setiap penyewa, karena hash dapat dikodekan secara efisien dalam ruang memori yang sangat kecil.

Siapa yang menggunakan Redis?

Redis telah menemukan pangsa pasar yang besar di seluruh industri perjalanan dan perhotelan, forum komunitas, media sosial, SaaS, dan industri e-niaga. Beberapa perusahaan terkemuka yang menggunakan Redis termasuk Pinterest, Uber, Slack, Airbnb, Twitter, dan Stack Overflow. Berikut adalah beberapa statistik tentang popularitas Redis hari ini:

  • 4.107 perusahaan dilaporkan menggunakan Redis di StackShare
  • 8.759 pengembang dinyatakan menggunakan Redis di StackShare
  • 38.094 pengguna GitHub telah mengilaukan bintang Redis
  • Database peringkat #8 di DB-Engines dengan skor 144,08


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Resque pada tumpukan cedar Heroku Jumlah pekerja masih ada setelah pekerja dihentikan

  2. Bagaimana cara mengembalikan flask render_template setelah pekerjaan latar belakang Redis selesai?

  3. Node.js, Socket.io, Redis pub/sub volume tinggi, kesulitan latensi rendah

  4. Cara menghapus Redis pada pendengar 'pesan'

  5. Redis SortedSet:Bagaimana cara mendapatkan nilai dalam urutan numerik daripada urutan abjad ketika dua nilai memiliki skor yang sama?