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