20

memcacheまたはredisに接続しているとしましょう...どちらのスタイルが優先され、その理由は何ですか?

MEMCACHE = Memcache.new(...)
REDIS = Redis.new(...)

また

$memcache = Memcache.new(...)
$redis = Redis.new(...)
4

3 に答える 3

45

ここでRedis.current詳細情報を使用することをお勧めします

たとえば、イニシャライザでは次のようになります。

Redis.current = Redis.new(host: 'localhost', port: 6379)

そして、他のクラスで:

def stars
  redis.smembers("stars")
end

private

def redis
  Redis.current
end
于 2013-05-10T03:23:09.140 に答える
9

それらは同等の構造ではありません。アプリケーションによって、互換性がある場合とない場合がありますが、意味的には異なります。

# MEMCACHE is a constant, subject to scoping constraints.
MEMCACHE = Memcache.new(...)

# $memcache is a global variable: declare it anywhere; use it anywhere.
$memcache = Memcache.new(...)
于 2012-06-05T16:19:58.927 に答える
4

IMOは「一定」です。これは、一定である必要があることを伝えているためです。

グローバルは、それらが変更されるべきではないことを意味するものではありません。

于 2012-06-05T16:17:46.913 に答える