第1篇:https://www.cnblogs.com/cgzl/p/10294175.html
第2篇 String:https://www.cnblogs.com/cgzl/p/10297565.html
Hash
Redis的Hash有點像一個物件(object),一個Hash裡面可以存多個Key-Value對作為它的field,所以它通常可以用來表示物件。
Hash裡面能存放的值也能作為String型別來儲存,如果Hash裡面值的型別可以解析為數字,那麼也可以進行自增自減等操作。
主要命令
Hash相關的命令都是以H開頭。
HSET
HSET 設定Hash裡面的值:
格式為:hset hash-key field1 field1value field2 field2value ...
注:HMSET的功能和HSET貌似是一樣的。
關於Hash的key的更實際用法是這樣:
通常在Hash的Key中使用冒號:,這樣可以做出來類似名稱空間的效果。
user:1000可以表示ID為1000的使用者。
HGET
HGET通過Hash裡面的key獲取其對應的值:
HGETALL
如果想獲得Hash所有的Key-Value對,那就使用HGETALL:
注意其結果是如何顯示的。
HMGET
HMSET可以設定Hash裡多個Key的值,而HMGET可以通過Hash的多個Key獲取其對應的值:
但是它不會返回Key。
HINCRBY
如果Hash裡某個Field值的型別可以解析成數值,那麼還可以用HINCRBY來做自增:
其它命令
其它命令還有HDEL,HEXISTS,HINCRBYFLOAT,HKEYS,HLEN,HSCAN,HSETNX,HVALS請參照官方文件自行摸索。
用.NET Core操練
準備一個C#物件:
然後從網上抄襲了一個C#物件和Redis HashEntry[]之間轉換的工具類:
HSET,HGETALL
結果:
HGET
結果:
HMGET
HMGET是使用HashGet的另一個Overload方法:
結果:
HINCRBY
結果:
HDEL
結果:
HSCAN
HSCAN返回的型別是IEnumerable<HashEntry>:
結果: