redis续4-Hashes类型及操作

 如果说nosql仅仅是键值对(key/value)的话,那就大错特错了。对于redis来说,仅仅是string类型才符合key/value;其他的类型都不是完全符合key/value的,list是列表类型,如果有数据结构基础,对栈和队列有所理解的话,会很容易学习list类型的。

今天介绍哈希类型,也是一个频繁使用的类型 Hashes是字符串字段和字符串值之间的映射,因此他们是展现对象的完美数据类型。

下面来介绍hashes类型是如何使用的:

先开始redis的服务

/usr/local/redis/redis-server  /etc/redis.conf

再进入redis的客户端:

/usr/local/redis/redis-cli回车

redis>

HSET命令:

为指定的Key设定Field/Value

HGET

返回指定Key中指定Field的关联值

HDEL

从指定KeyHashes Value中删除参数中指定的多个字段

HEXISTS

指定Key中的指定Field是否存在

HLEN

获取该Key所包含的Field的数

HSETNX

将哈希表 key 中的域 field 的值设置为 value

#给键值为myhash的键设置字段为field1,值为stephen

redis 127.0.0.1:6379> hset myhash field1 "stephen"

(integer) 1

#获取键值为myhash,字段为field1的值。

redis 127.0.0.1:6379> hget myhash field1

"stephen"

#myhash键中不存在field2字段,因此返回nil

redis 127.0.0.1:6379> hget myhash field2

(nil)

#myhash关联的Hashes值添加一个新的字段field2,其值为liu

redis 127.0.0.1:6379> hset myhash field2 "liu"

(integer) 1

 #获取myhash键的字段数量。

redis 127.0.0.1:6379> hlen myhash

(integer) 2

 #判断myhash键中是否存在字段名为field1的字段,由于存在,返回值为1

redis 127.0.0.1:6379> hexists myhash field1

(integer) 1

#删除myhash键中字段名为field1的字段,删除成功返回1

redis 127.0.0.1:6379> hdel myhash field1

(integer) 1

#再次删除myhash键中字段名为field1的字段,由于上一条命令已经将其删除,因为没有删除,返回0redis 127.0.0.1:6379> hdel myhash field1

(integer) 0

#判断myhash键中是否存在field1字段,由于上一条命令已经将其删除,因为返回0

redis 127.0.0.1:6379> hexists myhash field1

 (integer) 0

#通过hsetnx命令给myhash添加新字段field1,其值为stephen,因为该字段已经被删除,所以该命令添加成功并返回1

redis 127.0.0.1:6379> hsetnx myhash field1 stephen

 (integer) 1

#由于myhashfield1字段已经通过上一条命令添加成功,因为本条命令不做任何操作后返回0

redis 127.0.0.1:6379> hsetnx myhash field1 stephen

(integer) 0

HINCRBY命令:

增加指定Key中指定Field关联的Value的值

redis 127.0.0.1:6379> hset myhash field 5

(integer) 1

 #myhashfield字段的值加1,返回加后的结果。

redis 127.0.0.1:6379> hincrby myhash field 1

 (integer) 6

#myhashfield字段的值加-1,返回加后的结果。

redis 127.0.0.1:6379> hincrby myhash field -1

(integer) 5

 #myhashfield字段的值加-10,返回加后的结果。

redis 127.0.0.1:6379> hincrby myhash field -10

 (integer) -5

HGETALL命令:

获取该键包含的所有Field/Value

HKEYS命令:

返回指定Key的所有Fields

HVALS命令:

返回指定Key的所有Values

HMGET命令:

获取和参数中指定Fields关联的一组Values

HMSET命令:

逐对依次设置参数中给出的Field/Value

#为键myhash,一次性设置多个字段,分别是field1 = "hello", field2 = "world"

redis 127.0.0.1:6379> hmset myhash field1 "hello" field2 "world"

OK

#获取myhash键的多个字段,其中field3并不存在,因为在返回结果中与该字段对应的值为nil

redis 127.0.0.1:6379> hmget myhash field1 field2 field3

1) "hello"

2) "world"

3) (nil)

#返回myhash键的所有字段及其值,从结果中可以看出,他们是逐对列出的。

redis 127.0.0.1:6379> hgetall myhash

 1) "field1"

2) "hello"

3) "field2"

4) "world"

#仅获取myhash键中所有字段的名字。

redis 127.0.0.1:6379> hkeys myhash

1) "field1"

 2) "field2"

#仅获取myhash键中所有字段的值。

redis 127.0.0.1:6379> hvals myhash

1) "hello"

 2) "world"

 

好了,哈希类型介绍完毕。

有没有发现redis中各种类型中基本命令有一个很意思的规律,就是get,set,mget,mset基础上扩展;只要学会了一种类型,其他的类型大同小异。不过明天的sets就有点区别了,但也so  easy.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29806344/viewspace-1416017/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29806344/viewspace-1416017/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值