| 上篇我们讲到string的操作方法,其实hashes与其类似,只不过命令格式不同而已。 
 使用redis-cli进入redis:
 
 | 1 2
 
 | [iyunv@web1 ~]# redis-cli 127.0.0.1:6379>
 
 
 | 
 
 1、添加
 a>hset
 方法:hset key filed value
 描述:与set一样,不存在增加,否则更新返回1表示新的filed,0表示filed已存在并用new value覆盖old value
 
 | 1 2
 3
 4
 5
 6
 7
 8
 
 | 127.0.0.1:6379> hset user:0001 name Sunshine (integer) 1
 127.0.0.1:6379> hget user:0001 name
 "Sunshine"
 127.0.0.1:6379> hset user:0001 name SunshineBoy
 (integer) 0
 127.0.0.1:6379> hget user:0001 name
 "SunshineBoy"
 
 
 | 
 
 b>hsetnx
 
 方法:hsetnx key filed value
 描述:与setnx一样,filed为指定value,如果key不存在先创建,否则返回0
 
 | 1 2
 3
 4
 5
 6
 7
 8
 
 | 127.0.0.1:6379> hsetnx user:0002 name Sunshineone (integer) 1
 127.0.0.1:6379> hget user:0002 name
 "Sunshineone"
 127.0.0.1:6379> hsetnx user:0002 name Sunshinetwo
 (integer) 0
 127.0.0.1:6379> hget user:0002 name
 "Sunshineone"
 
 
 | 
 
 c>hmset
 方法:hmset key filed value [key filed value...]
 描述:与mset一样,成功返回OK,如果filed存在就更新
 
 | 1 2
 3
 4
 5
 6
 7
 
 | 127.0.0.1:6379> hmset user:003 name Sunshine age 25 OK
 127.0.0.1:6379> hmset user:003 name Sunshine age 23
 OK
 127.0.0.1:6379> hmget user:003 name age
 1) "Sunshine"
 2) "23"
 
 
 | 
 
 2、查看
 a>hget
 方法:hget key filed
 描述:与get一样,查看key的filed的value
 
 | 1 2
 
 | 127.0.0.1:6379> hget user:0002 name "Sunshineone"
 
 
 | 
 
 b>hmget
 方法:hmget key filed [filed2...]
 
 | 1 2
 3
 4
 5
 
 | 127.0.0.1:6379> hmget user:003 name 1) "Sunshine"
 127.0.0.1:6379> hmget user:003 name age
 1) "Sunshine"
 2) "23"
 
 
 | 
 
 
 d>hlen
 方法: hlen key 描述:查看key有多个filed | 1 2
 3
 4
 5
 6
 7
 8
 9
 
 | 127.0.0.1:6379> hkeys user:003 1) "name"
 2) "age"
 127.0.0.1:6379> hlen user:003
 (integer) 2
 127.0.0.1:6379> hkeys user:0001
 1) "name"
 127.0.0.1:6379> hlen user:0001
 (integer) 1
 
 
 | 
 
 e>hkeys
 
 方法:hkey key
 描述:查看并显示key的filedname
 
 | 1 2
 3
 4
 5
 6
 7
 8
 9
 
 | 127.0.0.1:6379> hkeys user:0001 1) "name"
 127.0.0.1:6379> hkeys user:0002
 1) "name"
 127.0.0.1:6379> hkeys user:003
 1) "name"
 2) "age"
 127.0.0.1:6379> hkeys key:1
 1) "value"
 
 
 | 
 
 f>hvals
 方法:hvals key
 描述:插卡并电视key的filed值
 
 | 1 2
 3
 4
 5
 6
 7
 8
 9
 
 | 127.0.0.1:6379> hvals user:0001 1) "SunshineBoy"
 127.0.0.1:6379> hvals user:0002
 1) "Sunshineone"
 127.0.0.1:6379> hvals user:003
 1) "Sunshine"
 2) "23"
 127.0.0.1:6379> hvals key:1
 1) "20"
 
 
 | 
 
 g>hgetall
 
 方法:hgetall key
 描述:查看并显示key的filedname及filedvalue
 
 | 1 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 
 | 127.0.0.1:6379> hgetall user:0001 1) "name"
 2) "SunshineBoy"
 127.0.0.1:6379> hgetall user:0002
 1) "name"
 2) "Sunshineone"
 127.0.0.1:6379> hgetall user:003
 1) "name"
 2) "Sunshine"
 3) "age"
 4) "23"
 127.0.0.1:6379> hgetall key:1
 1) "value"
 2) "20"
 
 
 | 
 
 3、修改
 a>hincry
 方法:方法与incrby一样,hashes没有递增递减
 
 | 1 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 
 | 127.0.0.1:6379> hset key:1 value 20 (integer) 1
 127.0.0.1:6379> hget key:1 value
 "20"
 127.0.0.1:6379> hincrby key:1 value 10
 (integer) 30
 127.0.0.1:6379> hget key:1 value
 "30"
 127.0.0.1:6379> hincrby key:1 value -10
 (integer) 20
 127.0.0.1:6379> hget key:1 value
 "20"
 
 
 | 
 
 b>hincrbyfloat
 方法:hincrbyfloat key filed incr_by_number
 描述:用于浮点数,如果存在则递增递减,否则初始化值为0并设定当前值,下面为官方解释
 
 Redis Hincrbyfloat 命令用于为哈希表中的字段值加上指定浮点数增量值。 如果指定的字段不存在,那么在执行命令前,字段的值被初始化为 0 。 | 1 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 
 | 127.0.0.1:6379> hincrbyfloat key:2 value 2.6 "2.6"
 127.0.0.1:6379> hget key:2 value
 "2.6"
 127.0.0.1:6379> hincrbyfloat key:2 value 1.3
 "3.9"
 127.0.0.1:6379> hget key:2 value
 "3.9"
 127.0.0.1:6379> hincrbyfloat key:2 value -1.3
 "2.6"
 127.0.0.1:6379> hget key:2 value
 "2.6"
 
 
 | 
 
 4、测试
 a>hexists
 
 方法:hexists key filed
 描述:如果存在返回1,否则返回0
 
 | 1 2
 3
 4
 5
 6
 
 | 127.0.0.1:6379> hexists key:1 value1 (integer) 0
 127.0.0.1:6379> hexists key:2 value
 (integer) 0
 127.0.0.1:6379> hexists key:1 value
 (integer) 1
 
 
 | 
 
 
 
 至此Redis Heashes就介绍完毕啦
 
 
 |