# File lib/memcache.rb, line 107
  def get(keys, opts = {})
    raise 'opts must be hash' unless opts.instance_of?(Hash)

    if keys.instance_of?(Array)
      keys = keys.collect {|key| key.to_s}
      multi_get(keys, opts)
    else
      key = keys.to_s
      if opts[:expiry]
        value = server(key).gets(key)
        cas(key, value, :raw => true, :cas => value.memcache_cas, :expiry => opts[:expiry]) if value
      else
        value = server(key).get(key, opts[:cas])
      end

      return backup.get(key, opts) if backup and value.nil?
      opts[:raw] ? value : unmarshal(value, key)
    end
  end