Redis整理(4)之数据类型hash

除了散列类型,其他数据类型不支持嵌套
一个散列类型键只能包含2^32-1字段

散列类型适合存储对象:使用对象类别和ID构成键名,使用字段表示对象的属性,字段值存储属性值。
也就是说:同样的对象,各自却可以添加减少属性,有各自额外的特性。

例如一个NBA球员属性
NBAplayer:ID   height  rate  
NBAplayer:ID   height  rate
比如上述类型球员都有着 height  rate属性
那么如果有个属性chinaaddress,这个表示在NBA打球的中国球员,是其他国家球员不具备的属性
放在关系数据库中,我们得额外开启一个字段,但是很明显中国球员很少,这个字段无疑是一个浪费!
那么可不可以大部分属性一致,然后特殊对象可以拥有自己独一无二的的属性且不造成表冗余?

同理:我可以将博客文章存储在散列中,article.title article.id  article.time  article.content
避免了牵一发动全身,只需要修改该散列中相应的字段值便可以完成局部字段更新,不必所有内容更新
可以:
redis支持散列 hash

hset key field value
hget key field
hmset  key field value [field value...]
hget key field[field.... ]
hgetall key
hexists key field
hsetnx key field value //字段不存在时候赋值
hincrby key field incrment
hdel key field[field....] 删除键一个或者多个字段/属性
hlen key 获得键的字段/属性的个数
//只获取字段名或字段值
hkeys key
hvals  key
<?php
   $redis = new Redis();
   $redis->connect('192.168.104.10',6379);
   $first = 'nba:Tmac';//NBA本土球员 麦迪
   $redis->hset($first,'height','203');
   $redis->hset($first,'rate','43');
   print_r($redis->hgetall($first));
   echo "<hr>";
   
   $first = 'nba:Yao';//姚明
   $redis->hset($first,'height','203');
   $redis->hset($first,'rate','43');
   $redis->hset($first,'chinaAddress','上海');
   print_r($redis->hgetall($first));
?>



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值