用nuget引入StackExchange.Redis类库

新增操作

HashEntry hash1 = new HashEntry("foo1","bar1");
HashEntry hash2 = new HashEntry("foo2", "bar2");
HashEntry hash3 = new HashEntry("foo3", "bar3");
HashEntry[] hash = new HashEntry[] { hash1,hash2,hash3  };
db.HashSet("key7",hash);

结果如下:

hash redis hashredis获取_hash redis

HashEntry hash1 = new HashEntry("foo1","barZz");

对同个键插入新值会替换原来的值

hash redis hashredis获取_hash redis_02

读取操作

已知Redis 存在哈希表key6,内容如下:

hash redis hashredis获取_Redis_03

RedisValue[] key5fofo= db.HashValues("key6");//查询键下所有值,不包含filed

hash redis hashredis获取_Redis_04

RedisValue[] key5bar = db.HashGet("key6",new RedisValue[] { "name","Sex","Age" }); //根据提供仅有的字段名查找对应值

hash redis hashredis获取_hash redis_05

RedisValue[] key5barbar = db.HashGet("key6", new RedisValue[] { "Name", "Sex", "Age" });
//查找的条件字段大小写敏感,由于key6存的是name而不是Name,所以实际查询结果被空的RedisValue取代

hash redis hashredis获取_字段_06

hash redis hashredis获取_大小写敏感_07

HashEntry[] key5foo = db.HashGetAll("key6");
//返回的结果类型HashEntry,同时含有字段和值,即查询所有字段和值,不需要像HashGet提供查询字段

hash redis hashredis获取_大小写敏感_08

HashEntry[] key5foofoo = db.HashGetAll("key7");
//获取不存在key时返回长度为0的HashEntry,无法从中读取到值

hash redis hashredis获取_hash redis_09

查找键

var keys= db.HashKeys("key7");

hash redis hashredis获取_hash redis_10