1
A
回答
2
這裏有幾個選項。
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命令。
相關問題
- 1. 覆蓋ruby中的散列
- 2. 如何覆蓋NSManagedObjects的散列和isEqual?
- 3. 初始設置覆蓋所有
- 4. 如何設置列表視圖中所有項目的alpha值?
- 5. 覆蓋NSArray的散列值
- 6. VBA詞典 - 添加項目會覆蓋所有項目
- 7. ListView項目覆蓋現有項目
- 8. 強制VSProps設置覆蓋項目設置
- 9. 如何在Visual Studio 2010中的C++ googletest項目中設置代碼覆蓋率
- 10. .vimrc覆蓋現有設置
- 11. 覆蓋測試項目中的設置文件
- 12. SBT:覆蓋多構建dependsOn /聚合項目中的設置
- 13. 「項目覆蓋率設置爲0%」 - JaCoCo和Eclipse中的Sonar
- 14. PowerPoint中所有幻燈片的覆蓋項目
- 15. 覆蓋nVidia的3D設置覆蓋
- 16. 如何覆蓋ListView中的項目列表創建?
- 17. 如何覆蓋列表中的特定項目<object>
- 18. 覆蓋所有位的覆蓋箱
- 19. 添加新項目時列表中的項目被覆蓋
- 20. Android覆蓋項目
- 21. WCF項目覆蓋
- 22. 如何使用PowerShell中的Folder.CopyHere覆蓋現有項目?
- 23. 如何在IntelliJ IDEA中爲所有項目設置默認項目位置?
- 24. 如何在不覆蓋默認選項的情況下傳遞選項散列?
- 25. 如何使用新格式覆蓋CSV列中的所有行?
- 26. 「覆蓋」 php.ini設置
- 27. 覆蓋App.Config設置
- 28. MapView的覆蓋項目
- 29. 目標覆蓋FRAMEWORK_SEARCH_PATHS構建設置
- 30. 如何將Apache ProxyPass設置爲覆蓋父ProxyPass的子目錄?
client.Hashhes [hashId] .Clear(); client.Hash [hashId] .AddRange(hash); – ozz
是的,這是一個刪除並重新添加。可能是最簡單的。 –
它是最簡單但不是最好的表現:( – ozz