すべてのエントリをハッシュに設定したい。(SetAllEntriesToHash)
実行する前に、ハッシュ内のすべてのアイテムをクリアする必要があります。
GetAllEntriesFromHash の反対です。
すべてのエントリをハッシュに設定したい。(SetAllEntriesToHash)
実行する前に、ハッシュ内のすべてのアイテムをクリアする必要があります。
GetAllEntriesFromHash の反対です。
ここにはいくつかのオプションがあります。
1)高レベルの Redis API を使用して、ServiceStack にこれを任せることができます。
public class Poco
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
}
...
// Client
var client = new RedisClient("localhost", 6379);
// This will store the object for you in a Redis hash.
client.StoreAsHash(new Poco { Id = 1, Name = "Test Name", Description = "Test Description" });
// This will fetch it back for you.
var result = client.GetFromHash<Poco>(1);
このアプローチにより、ハッシュの詳細を直接処理する必要がなくなります。ServiceStack はすべてを把握し、送信したオブジェクトを自動的にハッシュに詰め込みます。そのオブジェクトを更新したい場合は、同じ ID を持つ新しいオブジェクトを送信してください。
これの裏返しとして、より簡単なプログラミング エクスペリエンスのために、データを Redis に格納する方法を制御することをあきらめているということです。
2)すべて自分で処理します。ビルド済みのSetAllEntriesToHash関数はありません。
// Client
var client = new RedisClient("localhost", 6379);
// Clear all existing keys
var keysToClear = new Dictionary<string,string>();
client.GetHashKeys("xxxxx").ForEach(k => keysToClear.Add(k, ""));
client.SetRangeInHash("xxxxx", keysToClear);
// Save new key/values.
client.SetRangeInHash("xxxxx", new List<KeyValuePair<string, string>>
{
new KeyValuePair<string, string>("1", "value 1"),
new KeyValuePair<string, string>("2", "value 2"),
new KeyValuePair<string, string>("3", "value 3"),
});
または、ハッシュを削除して再作成する方が簡単な場合もあります。
RedisNativeClientにも注目してください。http://redis.io/commandsに直接マップする Redis コマンドを実行できます。