Redis 哈希
2020-09-27 本文已影响0人
爱折腾的傻小子
Hset 为哈希表中的字段赋值
- 如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作
- 如果字段已经存在于哈希表中,旧值将被覆盖
-
hset redis命令
HSET KEY_NAME FIELD VALUE
$return = \Illuminate\Support\Facades\Redis::connection('expired')->command('hset',
[
'h1', // key
'name', // field
'李四' // value
]
);
//
// $return = \Illuminate\Support\Facades\Redis::connection('expired')->append('hset',
// 'h1', 'name', '李四');
// 返回值新增成功返回1 更新返回0
Hmset 同时将多个 field-value (字段-值)对设置到哈希表中
- 此命令会覆盖哈希表中已存在的字段
- 如果哈希表不存在,会创建一个空哈希表,并执行 HMSET 操作
-
hmset redis命令
HMSET KEY_NAME FIELD1 VALUE1 ...FIELDN VALUEN
// 一个hash 对应数据库里一条数据
$return = \Illuminate\Support\Facades\Redis::connection('expired')->command('hmset', [
'user_1' , [
'id' => 1,
'name' => '张三',
'age' => 16,
'sex' => 1
]
]);
// or
// $return = \Illuminate\Support\Facades\Redis::connection('expired')->hmset('user_2' , [
// 'id' => 1,
// 'name' => '张三',
// 'age' => 16,
// 'sex' => 1
//]);
// 保存成功返回 true
Hget 返回哈希表中指定字段的值
hget redis命令 HGET KEY_NAME FIELD_NAME
$return = \Illuminate\Support\Facades\Redis::connection('expired')->command('hget', [
'user_1' , 'id'
]);
// or
// $return = \Illuminate\Support\Facades\Redis::connection('expired')->hget('user_2' , 'name');
// 返回获取到的值
Hmget 返回哈希表中,一个或多个给定字段的值
-
hmget redis命令
HMGET KEY_NAME FIELD1...FIELDN
$return = \Illuminate\Support\Facades\Redis::connection('expired')->command('hmget', [
'user_1' , ['id', 'name', 'asss']
]); //打印结果 ["id" => "1", "name" => "张三", "asss" => false]
// or
// $return = \Illuminate\Support\Facades\Redis::connection('expired')->
// hmget('user_2' , ['id', 'name', 'asss']); // 打印结果 ["1", "张三",false]
Hgetall 返回哈希表中,所有的字段和值
-
hgetall redis命令
HGETALL KEY_NAME
$return = \Illuminate\Support\Facades\Redis::connection('expired')->command('hgetall', [
'user_1'
]); // ["id" => "1","name" => "张三","age" => "16","sex" => "1"]
// or
// $return = \Illuminate\Support\Facades\Redis::connection('expired')->hgetall('user_2');
Hexists 查看哈希表的指定字段是否存在
-
hexists redis命令
HEXISTS KEY_NAME FIELD_NAME
$return = \Illuminate\Support\Facades\Redis::connection('expired')->command('hexists', [
'user_1', 'id'
]);
// or
// $return = \Illuminate\Support\Facades\Redis::connection('expired')->hexists('user_1', 'id');
// 返回值 如果存在返回true 否则返回false
Hdel 删除哈希表 key 中的一个或多个指定字段,不存在的字段将被忽略
-
hdel redis命令
HDEL KEY_NAME FIELD1.. FIELDN
$return = \Illuminate\Support\Facades\Redis::connection('expired')->command('hdel', [
'user_1', 'age'
]); // 1
// or
// $return = \Illuminate\Support\Facades\Redis::connection('expired')->hdel('user_1', 'id');
// 返回值 返回成功删除的数量
Hincrby 为哈希表中的字段值加上指定增量值
- 增量也可以为负数,相当于对指定字段进行减法操作
- 如果哈希表的 key 不存在,一个新的哈希表被创建并执行 HINCRBY 命令
- 如果指定的字段不存在,那么在执行命令前,字段的值被初始化为 0
- 对一个储存字符串值的字段执行 HINCRBY 命令将造成一个错误
-
hincrby redis命令
HINCRBY KEY_NAME FIELD_NAME INCR_BY_NUMBER
$return = \Illuminate\Support\Facades\Redis::connection('expired')->command('hincrby', [
'user_2', 'age', 2
]); // 22
// or
// $return = \Illuminate\Support\Facades\Redis::connection('expired')->hincrby('user_2', 'age', 2);
// 返回值 返回更新后redis存储的值
Hincrbyfloat 为哈希表中的字段值加上指定浮点数增量值
- 如果指定的字段不存在,那么在执行命令前,字段的值被初始化为 0
-
hincrbyfloat redis命令
HINCRBYFLOAT KEY_NAME FIELD_NAME INCR_BY_NUMBER
$return = \Illuminate\Support\Facades\Redis::connection('expired')->command('hincrbyfloat', [
'user_2', 'age', 2.1
]); // 24.1
// or
// $return = \Illuminate\Support\Facades\Redis::connection('expired')->hincrbyfloat('user_2', 'age', 2.2);
// 返回值 返回更新后redis存储的值
Hlen 获取哈希表中字段的数量
-
hlen redis命令
HLEN KEY_NAME
$return = \Illuminate\Support\Facades\Redis::connection('expired')->command('hlen', [
'user_1'
]); // 3
// or
// $return = \Illuminate\Support\Facades\Redis::connection('expired')->hlen('user_2');
// 返回值 字段数量
Hvals 返回哈希表所有字段的值
- 和hgetall比较类似 hgetall返回key-value形式 hvals返回values
-
hvals redis命令
HVALS KEY_NAME FIELD VALUE
$return = \Illuminate\Support\Facades\Redis::connection('expired')->command('hvals', [
'user_1'
]); // [ "1", "张三", "22.1", "1]
// or
// $return = \Illuminate\Support\Facades\Redis::connection('expired')->hvals('user_2');
Hkeys 获取哈希表中的所有字段名
-
hkeys redis命令
HKEYS KEY_NAME FIELD_NAME INCR_BY_NUMBER
$return = \Illuminate\Support\Facades\Redis::connection('expired')->command('hkeys', [
'user_1'
]); // ["id", "name", "sex"]
// or
// $return = \Illuminate\Support\Facades\Redis::connection('expired')->hkeys('user_2');
Hsetnx 为哈希表中不存在的的字段赋值
- 如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作
- 如果字段已经存在于哈希表中,操作无效
- 如果 key 不存在,一个新哈希表被创建并执行 HSETNX 命令
-
hsetnx redis命令
HSETNX KEY_NAME FIELD VALUE
$return = \Illuminate\Support\Facades\Redis::connection('expired')->command('hsetnx', [
'user_1', 'sd', 'sd1'
]); // true
// or
// $return = \Illuminate\Support\Facades\Redis::connection('expired')->hsetnx('user_1', 'sd', 'sd1');
// 返回值 成功返回true 失败返回false