Redisで名前空間を作成することは可能ですか?
私が見つけたものから、すべてのグローバルコマンド(count、delete all)はすべてのオブジェクトに対して機能します。これらのコマンドがコンテキスト内で制限されるようにサブスペースを作成する方法はありますか?
この目的のために異なるRedisサーバーをセットアップしたくはありません。
私は答えが「いいえ」であると思います、そしてそれがあまりに多くのオーバーヘッドなしで役に立つ機能であるように思われるので、なぜこれが実行されなかったか疑問に思います。
Redisサーバーは、番号が付けられた複数のデータベースを処理できます。私はそれがデフォルトでそれらの32を提供すると思います。あなたが使用してそれらにアクセスすることができます-nへのオプションRedisの-CLIシェルスクリプトコマンドと、接続引数と同様のオプション、または"select()"
その接続オブジェクトのメソッド。 (この場合.select()
Python Redisモジュールのメソッド名です。他のライブラリやインタフェースと同じように名前が付けられていると思います。
Redisサーバーデーモンの設定ファイルにいくつの別々のデータベースが必要かを制御するオプションもあります。上限がどうなるかわかりませんし、それを動的に変更する方法はないようです(言い換えれば、追加のDBを追加するにはサーバーをシャットダウンして再起動する必要があるようです)。また、これらのDB番号を何らかの種類の名前と関連付けたり、別々のACLSや異なるパスワードを課したりすることもありません。もちろん、Redisもスキーマがありません。
あなたがRubyを使っているなら、あなたはこれらの宝石を見ることができます:
https://github.com/resque/redis-namespace
https://github.com/jodosha/redis-store
redis-namespace
ライブラリ、これは貧乏人の名前空間です。すべての頭に「ns:*」を付けるだけです。 - Mirek Rusin
$redis
変数とそれを新しく渡すことRedis.new
引数(もちろんRailsの設定は考慮していません) - Sachin