127.0.0.1:6379> getset foo hi ##设置新值,返回旧值nil (nil) 127.0.0.1:6379> get foo "hi" 127.0.0.1:6379> setex foo 2 hello ##设置键值对,2秒失效 OK 127.0.0.1:6379> get foo ##没失效时,返回值 "hello" 127.0.0.1:6379> get foo ##失效之后,返回nil (nil) 127.0.0.1:6379> set foo hello OK 127.0.0.1:6379> setrange foo 1 appy ##替换index=1之后的字符串 (integer) 5 127.0.0.1:6379> get foo "happy" 127.0.0.1:6379> setrange foo 1 ee (integer) 5 ##返回修改后的长度 127.0.0.1:6379> get foo ##替换两个字符 "heepy" 127.0.0.1:6379> setrange foo 8 day (integer) 11 127.0.0.1:6379> get foo "heepyx00x00x00day" 127.0.0.1:6379> get bar (nil) 127.0.0.1:6379> setrange bar 2 ee ##bar的值为nil,补充两个0x00 (integer) 4 127.0.0.1:6379> get bar "x00x00ee" 127.0.0.1:6379> set key1 hello OK 127.0.0.1:6379> msetnx key1 hi key2 hi ##key2不存在,不修改 (integer) 0 127.0.0.1:6379> mget key1 key2 ## key2依然为nil 1) "hello" 2) (nil)
hash
HSET key field value
HGET key field
HMSET key field value [field value ... ]
HMGET key field [field ...]
HGETALL key
HEXISTS key field
HSETNX key field value 字段不存在时赋值。 与HSET类型,区别在于,如果字段存在,HSETNX不执行任何操作。
HINCRBY key filed increment 如果key、field不存在,自动创建,键值为0,再增值。
HDEL key field [field...] 这是删除的是key:field,不能直接删除key。如果要删除key,使用DEL命令。
HEYS key 只获取字段名
HVALS key 只获取字段值
HLEN key 获得字段数量
127.0.0.1:6379> HMSET g1class1 xiaoming 001 xiaohong 002 tom 003 hanmeimei 004 OK 127.0.0.1:6379> HGETALL g1class1 1) "xiaoming" 2) "001" 3) "xiaohong" 4) "002" 5) "tom" 6) "003" 7) "hanmeimei" 8) "004" 127.0.0.1:6379> HKEYS g1class1 1) "xiaoming" 2) "xiaohong" 3) "tom" 4) "hanmeimei" 127.0.0.1:6379> HLEN g1class1 (integer) 4 127.0.0.1:6379> HGET g1class1 xiaohong "002" 127.0.0.1:6379> HSET g1class1 lilei 005 ##het新值时,返回1 (integer) 1 127.0.0.1:6379> hset g1class1 xiaohong 007 ## hset更新值时,返回0 (integer) 0 127.0.0.1:6379> hsetnx g1class1 tom 008 ##已存在的值,不操作 (integer) 0 127.0.0.1:6379> hget g1class1 tom ##已存在的值,更新不生效,还是003 "003" 127.0.0.1:6379> hdel g1class1 ##不能直接删除key (error) ERR wrong number of arguments for 'hdel' command 127.0.0.1:6379> DEL g1class1 ##使用DEL删除key (integer) 1 127.0.0.1:6379> hgetall g1class1 ##查询为空 (empty list or set)
用途
-
用来存储分级数据。外部key作为prefix,是第一级key,hash中的key作为第二级key使用。
存储含有多个属性的对象,如一篇博客的各种属性:标题,标签,分类等。修改某个属性,不用操作整个博客内容。










