Когда вы выполняете hset
для несуществующего ключа, он будет set
ваш ha sh с полем и соответствующим ему значением. Когда вы выполняете его для существующего поля ha sh (и ключа поля), он будет update
значение ha sh существующего поля ha sh.
127.0.0.1:6379> hset myhash myhashfield myvalue
(integer) 1
127.0.0.1:6379> hgetall myhash
1) "myhashfield"
2) "myvalue"
127.0.0.1:6379> hset myhash myhashfield anothervalue
(integer) 0
127.0.0.1:6379> hgetall myhash
1) "myhashfield"
2) "anothervalue"
127.0.0.1:6379>
Тем не менее, если вы хотите проверьте, существует ли ключ, вы можете использовать exists
O (1)
127.0.0.1:6379> exists myhash
(integer) 1
127.0.0.1:6379> exists nonexisting
(integer) 0
Если вы хотите проверить, существует ли поле ha sh, вы можете использовать hexists
O (1)
127.0.0.1:6379> hexists myhash myhashfield
(integer) 1
127.0.0.1:6379> hexists myhash nonfield
(integer) 0
127.0.0.1:6379> hexists notmyhash myfield
(integer) 0
Изменить:
В документации указано, что для hset
;
Устанавливает поле в ha sh, хранящемся в ключ к значению. Если ключ не существует, создается новый ключ, содержащий ha sh. Если поле уже существует в ha sh, оно перезаписывается.