最近在做项目使用到了一些redis的hash操作,下面简单总结一下redis的部分hash操作的命令
1. redis按照hash进行存值
hmset key field1 value1 field2 value2 ...
2. redis得到hash的key中某一个field的值
hmget key field
注意:其中field表示你想要查询的field的值,其中field可以有多个值。
3. redis返回哈希表key的所有field值和所有的value值
hgetall key
注意:其中奇数为filed值,偶数为对应的value值。
4. redis返回哈希表key的所有filed的值
hkeys key
5. redis返回哈希表key的所有的value值
hvals key
6. redis删除哈希表key的某一个field值和对应的value值
hdel key
7. redis设置key的过期时间
expire key time | expireat key time
注意:其中expire key time中的time表示的是秒数,expireat key time中的time表示的是unixtime的标准秒数
举例说明expire key time的方法:
8. redis查看key的到期时间或剩余的剩余的生存时间
ttl key
9. redis删除key的过期时间
persist key
10. 其他的关于redis的一些操作,可以查看菜鸟教程
网站:http://www.runoob.com/redis/redis-tutorial.html
最近在做项目使用到了一些redis的hash操作,下面简单总结一下redis的部分hash操作的命令1. redis按照hash进行存值 hmset key field1 value1 field2 value2 ... 例如: 2. redis得到hash的key中某一个field的值 hmget key field 注意:其中field表示你想要查询的field的...
本文同时发表在https://github.com/zhangyachen/zhangyachen.github.io/issues/95
redis
的hash结构中存储了如下的数据:
$input = array(
"
key
" => $
key
, //唯一的
key
值
"qid" => $qid, //问题id
"
value
" => $s...
HSET
key
field
value
[
field
value
…]
Redis
Hset 命令用于为存储在
key
中的
哈希表
的
field
字段赋值
value
。
如果
哈希表
不存在,一个新的
哈希表
被创建并进行 HSET
操作
。
如果字段(
field
)已经存在于
哈希表
中,旧值将被覆盖。
HGET
key
field
Redis
HGET 命令用于
返回
哈希表
中指定字段
field
的值。
HSETNX
key
field
value
Redis
HSETNX 命令用于为
哈希表
中不存在的字段赋值 。
hash:
Redis
hash是一个string类型的
field
和
value
的映射表,hash特别适合用于存储对象。
Redis
中每个hash可以存储 232 – 1键值对(40多亿)。
127.0.0.1:6379> HMSET runoob
key
name "
redis
tutorial" description "
redis
basic commands for caching" likes 20
visitors 23000
127.0.0.1:6379> HGETALL runoob
key
1) "name"
2) "
redis
tutorial"
3) "de
在hash表中通过hgetall
方法
获取全部的
key
和
value
害怕之后影响效率!
想要通过hscan来通过游标分页获取,恭喜你,想的是对的,但是通过实测每次hscan给的数量和游标都没有效果,
返回
全部的数据!
这里通过查询得知,当hash表的数据小于一定量的时候(1023条,不一定正确),hscan模式
返回
的是全部数据的,
返回
的游标也是0;
想要预留的的话,可通过判断
返回
值的游标、
返回
type、
返回
数量来做自己的定制处理;
当
返回
游标为0时候,表示已经
返回
完数据了,type表
REDIS
_REP
if ($
value
!== false) {
echo "
Field
'
field
' exists in hash 'hash_
key
' and its
value
is: $
value
";
} else {
echo "
Field
'
field
' does not exist in hash 'hash_
key
'";
如果你想查找
哈希表
中所有的字段和值,可以使用 `hGetAll()`
方法
:
```php
$
value
s = $
redis
->hGetAll('hash_
key
');
if (!empty($
value
s)) {
echo "Hash 'hash_
key
' contains the following
field
s and
value
s:";
foreach ($
value
s as $
field
=> $
value
) {
echo "$
field
: $
value
";
} else {
echo "Hash 'hash_
key
' is empty";