hash是redis的一个比较常用的数据类型,这个数据类型也提供了一些常用的方法如hget.hgetall,hincrby,hset,hkeys,hlen,hdel等。
hset是将指定字段的值设置到hash的key中。语法格式hset key field value
我们创建一个新的key user_1,并写入age和sex的值
127.0.0.1:6379> hset user_1 age 30 (integer) 1 127.0.0.1:6379> hset user_1 sex male (integer) 1
我们设置user_1的age为30,sex为male。我们来获取下user_1的值。获取用hget
127.0.0.1:6379> hget user_1 age "30" 127.0.0.1:6379> hget user_1 sex "male"
这里可以看到age和sex的值分别为30和male和设置的一样。hset命令会覆盖key中已经存在的field的值。我们来试下
127.0.0.1:6379> hset user_1 age 80 (integer) 0 127.0.0.1:6379> hset user_1 sex female (integer) 0 127.0.0.1:6379> hget user_1 age "80" 127.0.0.1:6379> hget user_1 sex "female"
通过获取sex和age的值,我们发现值已经被覆盖了。大家有没有发现第二次设置age和sex的值的返回值是0,不是1,这是为什么呢?因为第一次设置的时候key user_1是不存在的,这个时候redis会创建一个key为user_1的hash数据,第二次hset的时候,key user_1已经存在了,这个时候是不用创建user_1这个key的。
在实际的应用中我们可能会用hash来缓存一些用户信息,这个时候key就可以定义的和用户id相关比如user_1