4

そのため、Pythonアプリでredisを使用しています。鍵の管理について何かアドバイスはありますか? 私はすべての redis 呼び出しを 1 つの場所に保持しようとしていますが、どこでもキーをハードコーディングすると何かがおかしいようです。チップ?

4

2 に答える 2

2

次のようなキー生成を処理する一連のラッパー クラスを使用します。

public User Get(string username) {
    return redis.Get("user:"+username);
}

これらの各クラスのインスタンスをグローバルに利用できるので、呼び出すだけで済みます

Server.Users.Get(username);

もちろん、これは .NET の場合ですが、同様のものがどの言語でも機能するはずです。汎用のマッピング ツールを使用する場合と比較した場合のこのアプローチのもう 1 つの利点は、接続の共有やインデックス作成などを配置するのに適した場所を提供することです。

于 2010-10-19T04:43:06.777 に答える
1

キー名はアプリケーションのクラスや属性に相当するため、ある程度の「繰り返し」が発生します。

ただし、実際にキーを作成するために多くのコードを繰り返していることがわかった場合は、マッパーを検討することをお勧めします。Python にはRediscoがあります。

または、もっと単純なものが必要な場合は、Ruby にNestがあります(これを Python に移植するのは簡単です)。これにより、キーへの参照を DRY できます。

users = Nest.new("User")

user = users[1]
# => "User:1"

user[:name]
# => "User:1:name"

redis.set(user[:name], "Foo")

# or even:
user[:name].set("Foo")

user[:name].get
# => "Foo"
于 2010-08-26T02:50:30.803 に答える