Redis Hash散列

一 介绍
由field和关联的value组成map键值对
field和value是字符串类型
一个hash中最多包含2^32-1键值对

二 常用命令
1 设置单个字段
HSET key field value
HSETNX key field value
key的field不存在的情况下执行,key不存在直接创建
2 设置多个字段
HMSET key field value [field value ...]
3 返回字段个数
HLEN key
4 判断字段是否存在
HEXISTS key field
key或者field不存在,返回0
5 返回字段值
HGET key field
6 返回多个字段值
HMGET key field [field ...]
7 返回所有的键值对
HGETALL key
8 返回所有字段名
HKEYS key
9 返回所有值
HVALS key
10 在字段对应值上进行整数的增量计算
HINCRBY key field increment
11 在字段对应的值上进行浮点数的增量计算
HINCRBYFLOAT key field increment
12 删除指定的字段
HDEL key field [field ...]

三 实战
127.0.0.1:6379> hset cakin qq 12345
(integer) 1
127.0.0.1:6379> hget cakin qq
"12345"
127.0.0.1:6379> hmset cakin email 56 space 78
OK
127.0.0.1:6379> HLEN cakin
(integer) 3
127.0.0.1:6379> HEXISTS cakin qq
(integer) 1
127.0.0.1:6379> HEXISTS cakin sex
(integer) 0
127.0.0.1:6379> HGETALL cakin
1) "qq"
2) "12345"
3) "email"
4) "56"
5) "space"
6) "78"
127.0.0.1:6379> HKEYS cakin
1) "qq"
2) "email"
3) "space"
127.0.0.1:6379> HvalS cakin
1) "12345"
2) "56"
3) "78"
127.0.0.1:6379> HINCRBY numbers x 100
(integer) 100
127.0.0.1:6379> HINCRBY numbers x -50
(integer) 50
127.0.0.1:6379> HGET numbers x
"50"
127.0.0.1:6379> HINCRBYFLOAT numbers x 3.14
"53.14"
127.0.0.1:6379> HGET numbers x
"53.14"
127.0.0.1:6379> HDEL numbers x
(integer) 1

四 Hash的用途
1 节约内存空间
2 每创建一个键,它都会为这个键存储一些附加的管理信息(比如这个键的类型,这个键最后一次被访问的时间等等)
3 所以数据库里的键越多,redis数据库服务器在存储附件管理信息方面耗费的内存就越多,花在管理数据库键上的cpu也会越多。

五 不适合hash的情况
1 使用二进制位操作命令:因为Redis目前支持对字符串键进行SETBIT、GETBIT、BITOP等操作,如果你想使用这些操作,那么只能使用字符串键,虽然散列也能保存二进制数据。
2 使用过期键功能:Redis的键过期功能目前只能对键进行过期操作,而不能对散列的字段进行过期操作,因此如果你要对健值对数据使用过期功能的话,那么只能把健值对存储在字符串里面。

六 微博好友关注
用户ID未key,Field未好友ID,Value为关注时间
user:1000 user:606 20150808

七 用户维度统计
统计数包括:关注数、粉丝数、喜欢商品数、发帖数
用户为Key,不同维度为Field,Value为统计数
比如关注数为5人
HSET user:10000 follow 5
HINCRBY user:10000 follow 1

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值