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

Kontrol masalah aliran dengan node/redis dan panggilan balik?

Saya tidak mengerti mengapa client.smembers dan client.get (Pencarian Redis) harus berupa panggilan balik daripada sekadar pernyataan - hal ini membuat hidup menjadi sangat rumit.

Demikianlah apa yang dimaksud dengan Node. (Saya cukup yakin bahwa topik ini telah dibahas lebih dari cukup di sini, lihat pertanyaan lain, pasti ada)

Bagaimana saya bisa yakin bahwa semua pencarian telah dilakukan sebelum memanggil socket.broadcast ?

Itulah err untuk dalam fungsi panggilan balik. Ini agak standar Node - parameter pertama dalam panggilan balik adalah objek kesalahan (null jika semuanya baik-baik saja). Jadi gunakan saja sesuatu seperti ini untuk memastikan tidak ada kesalahan yang terjadi:

if (err) {
  ...    // handle errors.
  return // or not, it depends.
}

... // process results

Tapi ini sepertinya sangat berantakan.

Anda akan terbiasa. Saya sebenarnya merasa itu bagus, ketika kode diformat dengan baik dan proyek terstruktur dengan cerdas.

Cara lainnya adalah:

  • Menggunakan pustaka untuk mengontrol aliran kode asinkron (Async.js, Step.js, dll.)
  • Jika menurut Anda kode gaya spageti berantakan, tentukan beberapa fungsi untuk memproses hasil dan meneruskannya sebagai parameter, bukan yang anonim.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jumlah kunci kedaluwarsa yang tercantum oleh perintah info pada redis slave tidak konsisten dengan apa yang saya lihat

  2. Azure VM tidak terhubung ke Azure Redis Cache tetapi lokal terhubung ke Azure Redis Cache

  3. Redis mencoba terhubung ke localhost di Heroku alih-alih REDIS_URL

  4. Cara menggunakan jackson alih-alih JdkSerializationRedisSerializer di musim semi

  5. Cara Mengatur Yii2 Dengan Konfigurasi Redis