**
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