thinkphp5操作hash散列

**

thinkphp5操作hash散列

**redis 五大类型之一hash散列
基本命令:
hset 设置key=》val值
hget 获得指定key值
hgetall 获得散列所有key和val
hdel 移除建值
hmget 获取一个或回个建的值
hmset 设置一个或多个键和值
hlen 查询散列键值对个数
hexists 检查key是否在散列中
hkeys 获得散列包含的所有key
hvals 获得散列包含的所有val
hincrby 讲key存储的值加上increment
hincrbyfloat 将key存储的值加上浮点数increment

服务端redis扩展

 /*
 * hset设置值
 */
public function hSet($name,$key,$val)
{
    return $this->handler->hset($name,$key,$val);
}

/*
 * hget获得值
 */
public function hGet($name,$key)
{
    return $this->handler->hget($name,$key);
}

/*
 * hgetall 获得全部键值对
 */
public function hGetAll($name)
{
    return $this->handler->hgetall($name);
}

/*
 * hdel 删除key值
 */
public function hDel($name,$key)
{
    $num = 0;
    if(is_array($key)){
        foreach ($key as $row){
            $num+= $this->handler->hdel($name,$row);
        }
        return $num;
    }else{
        return $this->handler->hdel($name,$key);
    }
}


/*
 * hlen 查询键值对个数
 */
public function hLen($name)
{
    return $this->handler->hlen($name);
}
/*
 * hexists 查询建值是否在散列中
 */
public function hExists($name,$key)
{
    return $this->handler->hexists($name,$key);
}
/*
 * hkeys 获得所有建值
 */
public function hKeys($name)
{
    return $this->handler->hkeys($name);
}
/*
 * hvals 获得所有val
 */
public function hVals($name)
{
    return $this->handler->hvals($name);
}
/*
 * hincrby 讲key值加上整数
 */
public function hIncRby($name,$key,$count)
{
    if(is_numeric($count)){
        return $this->handler->hincrby($name,$key,$count);
    }else{
        return '数值错误';
    }

}
/*
 * hincrbyfloat 将key值加上浮点数
 */
public function hIncRbyFloat($name,$key,$count){
    if(is_numeric($count)){
        return $this->handler->hincrbyfloat($name,$key,$count);
    }else{
        return '数值错误';
    }
}

1.hset ,hget
客户端请求

 public function redis()
{
    $redis= new Redis();
    $redis->hset('demo','v1','11');
    $redis->hset('demo','v2','22');
    echo $redis->hget('demo','v1');
}

结果:

11

2.hgetall,hdel
客户端请求

 public function redis()
{
    $redis= new Redis();
    dump($redis->hgetall('demo'));
    $redis->hdel('demo','v1');
    dump($redis->hgetall('demo'));
}

结果

array(2) {
  ["v1"] => string(2) "11"
  ["v2"] => string(2) "22"
}
array(1) {
  ["v2"] => string(2) "22"
}

3.hmget ,hmset
客户端请求

public function redis()
{
    $redis= new Redis();
    $redis->handler()->hmset('demo',array('pats' => 'dog', 'fruit' => 'cherry', 'job' => 'programmer'));
    dump($redis->handler()->hmget('demo',array('pats','fruit','job')));
}

结果:

array(3) {
  ["pats"] => string(3) "dog"
  ["fruit"] => string(6) "cherry"
  ["job"] => string(10) "programmer"
}

4.hlen ,hexists ,hkeys ,hvals
客户端请求

 public function redis()
{
    $redis= new Redis();
    echo $redis->hExists('demo','pats');
    echo ' 总个数为:' . $redis->hLen('demo');
    dump($redis->hkeys('demo'));
    dump($redis->hVals('demo'));


}

结果

1 
总个数为:6
array(6) {
  [0] => string(1) "0"
  [1] => string(1) "1"
  [2] => string(4) "pats"
  [3] => string(5) "fruit"
  [4] => string(3) "job"
  [5] => string(1) "2"
}
array(6) {
  [0] => string(4) "pats"
  [1] => string(5) "fruit"
  [2] => string(3) "dog"
  [3] => string(6) "cherry"
  [4] => string(10) "programmer"
  [5] => string(3) "job"
}

5.hincrby , hincrbyfloat
客户端请求

	public function redis()
{
    $redis= new Redis();
    $redis->hset('demo','v1','10');
    echo $redis->hget('demo','v1');
    $redis->hIncRby('demo','v1','7');
    echo $redis->hget('demo','v1');
    $redis->hIncRbyFloat('demo','v1','0.7');
    echo $redis->hget('demo','v1');
    
}

结果

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值