解决方法
当使用rails和redis时,我对不同的环境使用不同的redis db或
namespace.该设置非常简单,类似于ActiveRecords数据库配置.
#config/redis.yml default: host: localhost port: 6379 development: db: 0 # namespace: appname_dev test: db: 1 # namespace: appname_test production: db: 2 host: 192.168.1.100 # namespace: appname_prod
然后加载配置并通过初始化程序连接到redis:
#config/initializers/redis.rb REdis_CONfig = YAML.load( File.open( Rails.root.join("config/redis.yml") ) ).symbolize_keys dflt = REdis_CONfig[:default].symbolize_keys cnfg = dflt.merge(REdis_CONfig[Rails.env.to_sym].symbolize_keys) if REdis_CONfig[Rails.env.to_sym] $redis = Redis.new(cnfg) #$redis_ns = Redis::Namespace.new(cnfg[:namespace],:redis => $redis) if cnfg[:namespace] # To clear out the db before each test $redis.flushdb if Rails.env == "test"