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

Mengatur bidang dinamis dalam Ohm / Redis

attribute metode kelas dari Ohm::Model mendefinisikan metode pengakses dan mutator untuk atribut bernama:

def self.attribute(name)
  define_method(name) do
    read_local(name)
  end

  define_method(:"#{name}=") do |value|
    write_local(name, value)
  end

  attributes << name unless attributes.include?(name)
end

Jadi ketika Anda mengatakan attribute :foo , Anda mendapatkan metode ini secara gratis:

def foo         # Returns the value of foo.
def foo=(value) # Assigns a value to foo.

Anda dapat menggunakan send untuk memanggil metode mutator seperti ini:

@ohm_obj.send((att + '=').to_sym, val)

Jika Anda benar-benar ingin mengatakan @ohm_obj[att] = val maka Anda dapat menambahkan sesuatu seperti berikut ke OhmObj . Anda kelas:

def []=(att, value)
    send((att + '=').to_sym, val)
end

Dan Anda mungkin ingin versi pengakses juga mempertahankan simetri:

def [](att)
    send(att.to_sym)
end


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Redis, kedaluwarsa sesi, dan pencarian terbalik

  2. Spring Data Redis:Redis Pipeline selalu kembali nol

  3. Laravel semua ID sesi dengan driver Redis

  4. Benchmark Couchbase mengungkapkan INSERT dan GET yang sangat lambat (menggunakan operasi KeyValue); lebih lambat dari data MySQL yang bertahan

  5. mengimplementasikan cache di luar proses menggunakan Redis di windows Azure