memcacheまたはredisに接続しているとしましょう...どちらのスタイルが優先され、その理由は何ですか?
MEMCACHE = Memcache.new(...)
REDIS = Redis.new(...)
また
$memcache = Memcache.new(...)
$redis = Redis.new(...)
memcacheまたはredisに接続しているとしましょう...どちらのスタイルが優先され、その理由は何ですか?
MEMCACHE = Memcache.new(...)
REDIS = Redis.new(...)
また
$memcache = Memcache.new(...)
$redis = Redis.new(...)
ここでRedis.current
詳細情報を使用することをお勧めします
たとえば、イニシャライザでは次のようになります。
Redis.current = Redis.new(host: 'localhost', port: 6379)
そして、他のクラスで:
def stars
redis.smembers("stars")
end
private
def redis
Redis.current
end
それらは同等の構造ではありません。アプリケーションによって、互換性がある場合とない場合がありますが、意味的には異なります。
# 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(...)
IMOは「一定」です。これは、一定である必要があることを伝えているためです。
グローバルは、それらが変更されるべきではないことを意味するものではありません。