第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>:
結果: