二、散列(hashes)

  

1.hset:设置散列的值

    $redis->hset('myhas','field1','hello');

    $redis->hset('myhas','field2','world');

2.hmset:设置 key 指定的哈希集中指定字段的值。该命令将重写所有在哈希集中存在的字段。如果 key 指定的哈希集不存在,会创建一个新的哈希集并与 key 关联

    $redis->hmset('myhas',['field1'=>11,'field2'=>22]);

3.hsetnx:只在 key 指定的哈希集中不存在指定的字段时,设置字段的值。如果 key 指定的哈希集不存在,会创建一个新的哈希集并与 key 关联。如果字段已存在,该操作无效果。

    $redis->hset('myhas','field1','hello');

    $redis->hsetnx('myhas','field1','world');

    $redis->hget('myhas','field1'); //输出 string(5) "hello"

4.hget:返回 key 指定的哈希集中该字段所关联的值

    $redis->hget('myhas','field1');//输出 'hello'$redis->hget('myhas','field2');//输出 'world'

5.hmget:返回 key 指定的哈希集中指定字段的值。对于哈希集中不存在的每个字段,返回 nil 值。因为不存在的keys被认为是一个空的哈希集,对一个不存在的 key 执行 HMGET 将返回一个只含有 nil 值的列表

    $redis->hmget('myhas',['field1','field2']);

6.hgetall:返回 key 指定的哈希集中所有的字段和值。返回值中,每个字段名的下一个是它的值,所以返回值的长度是哈希集大小的两倍

    $redis->hgetall('myhas');//输出 array(2) { ["field1"]=> string(5) "hello" ["field2"]=> string(5) "world" }

7.hkeys:返回 key 指定的哈希集中所有字段的名字。 

    $redis->hkeys('myhas');//输出 array(2) { [0]=> string(6) "field1" [1]=> string(6) "field2" }

8.hvals:返回 key 指定的哈希集中所有字段的值

    $redis->hvals('myhas');//输出 array(2) { [0]=> string(5) "world" [1]=> string(5) "hello" }

9.hexists:返回hash里面field是否存在  

    $redis->hexists('myhas','field1');

10.hdel:从 key 指定的哈希集中移除指定的域。在哈希集中不存在的域将被忽略。如果 key 指定的哈希集不存在,它将被认为是一个空的哈希集,该命令将返回0。

    $redis->hdel('myhas','field1');
    $redis->hgetall('myhas'); // 输出 array(1) { ["field2"]=> string(5) "world" }     如果想要删除 ‘myhas’     $redis->del('myhas');     $redis->hgetall('myhas'); // 输出 array(0) { } 11.hlen:返回 key 指定的哈希集包含的字段的数量。     $redis->hlen('myhas');//输出int(2) 12.hstrlen:返回hash指定field的value的字符串长度,如果hash或者field不存在,返回0.版本必须(3.2.0)     $redis->hstrlen('myhas','field1'); 13.hincrby:增加 key 指定的哈希集中指定字段的数值。如果 key 不存在,会创建一个新的哈希集并与 key 关联。如果字段不存在,则字段的值在该操作执行前被设置为 0HINCRBY 支持的值的范围限定在 64位 有符号整数     $redis->hmset('myhas',['field1'=>5,'field2'=>6]);
    $redis->hincrby('myhas','field1',-1);
    $redis->hget('myhas','field1');//输出 4 14.hincrbyfloat:为指定key的hash的field字段值执行float类型的increment加。如果field不存在,则在执行该操作前设置为0.如果出现下列情况之一,则返回错误:     $redis->hmset('myhas',['field1'=>5.2]);
    $redis->hincrbyfloat('myhas','field1',0.1);
    $redis->hget('myhas','field1');//输出 5.3

PHP-redis命令之 散列(hashes)的更多相关文章

  1. Redis数据类型之散列类型hash

    在redis中用的最多的就是hash和string类型. 问题 假设有User对象以JSON序列化的形式存储到redis中, User对象有id.username.password.age.name等 ...

  2. Redis数据类型之散列(hash)

    1. 什么是散列 散列类似于一个字典,是一个<K, V>对的集合,不过这个key和value都只能是字符串类型的,不能嵌套,可以看做Java中的Map<String, String& ...

  3. Redis实战之Redis命令

    阅读目录 1. 字符串命令 2. 列表命令 3. 集合命令 4. 散列命令 5. 有序集合命令 6. 发布与订阅命令 7. 小试牛刀 Redis可以存储键与5种不同数据结构类型之间的映射,这5种数据结 ...

  4. redis实战笔记(3)-第3章 Redis命令

    第3章 Redis命令   本章主要内容 字符串命令. 列表命令和集合命令 散列命令和有序集合命令 发布命令与订阅命令 其他命令   在每个不同的数据类型的章节里, 展示的都是该数据类型所独有的. 最 ...

  5. Redis命令拾遗二(散列类型)

    本文版权归博客园和作者吴双共同所有,欢迎转载,转载和爬虫请注明原文地址 :博客园蜗牛NoSql系列地址  http://www.cnblogs.com/tdws/tag/NoSql/ Redis命令拾 ...

  6. Redis常用命令入门2:散列类型

    散列命令 散列类型的键值其实也是一种字典解耦,其存储了字段和字段值的映射,但字段值只能是字符串,不支持其他数据类型,所以说散列类型不能嵌套其他的数据类型.一个散列类型的键可以包含最多2的32次方-1个 ...

  7. Redis从基础命令到实战之散列类型(Hash)

    从上一篇的实例中可以看出,用字符串类型存储对象有一些不足,在存储/读取时需要进行序列化/反序列化,即时只想修改一项内容,如价格,也必须修改整个键值.不仅增大开发的复杂度,也增加了不必要的性能开销. 一 ...

  8. Redis 小白指南(二)- 基础命令和五大类型:字符串、散列、列表、集合和有序集合

    Redis 小白指南(二)- 基础命令和五大类型:字符串.散列.列表.集合和有序集合 引言 目录 基础命令 字符串类型 散列类型 列表类型 集合类型 有序集合类型 基础命令 1.获得符合规则的键名列表 ...

  9. Redis散列(Hash)的相关命令

    散列 就像一个减配的Redis 内部及其类似Java的Map 内容就是key:value结构 hash类型在面向对象编程的运用中及其适合,因为它可以直接保存编程语言中的实体类关系 增 hset hse ...

随机推荐

  1. 洛谷 P4362 [NOI2002]贪吃的九头龙

    https://www.luogu.org/problemnew/show/P4362 首先有个很显然的dp:ans[i][j][k]表示i节点用j号头,i节点为根的子树中共有k个点用大头时i节点为根 ...

  2. JsonConvert对象实现json与对象之间的转换

    自己下载Newtonsoft.Json文件 使用JsonConvert对象转换 1. 2.添加引用到项目中,然后导入命名空间 3.就可以使用JsonConvert对象实现Json与类型之间的转换

  3. Ajax 提交表单【包括文件上传】

    利用js插件实现 <script src="@Url.Content("~/js/layer/jquery.form.min.js")"></ ...

  4. user-select详解

    语法: user-select:none | text | all | element 默认值:text 适用于:除替换元素外的所有元素 继承性:无 动画性:否 计算值:指定值 取值: none: 文 ...

  5. leetcode140 Word Break II

    思路: 直接爆搜会超时,需要使用记忆化搜索.使用map把已经计算过的情况记录下来,避免重复计算. 实现: class Solution { public: vector<string> w ...

  6. Stream.iterate方法与UnaryOperator

    前提:本人在翻看<Java核心技术II>的时候在p17的时候发现一段代码不是很明白.不知道为什么就输出了1,2,3,4,5,6,7,8,9,10,...也不知道n-n.add(BigInt ...

  7. Django 表增加外键

    1.创建临时表,并把原表的数据复制到临时表 先根据python manage syl article查看创建临时表 CREATE TABLE `article_article_temp` ( `id` ...

  8. hydra 中文文档

    hydra(九头蛇)是一款开源的协议爆破工具,功能十分强大!!! 具体使用如下: -R   继续从上一次进度接着破解 -I 忽略已破解的文件进行破解 -S 采用SSL链接 -s 端口 指定非默认服务端 ...

  9. mac 上node.js环境的安装与测试【转】

    http://blog.csdn.net/baihuaxiu123/article/details/51868142 一 摘要 如何大家之前做过web服务器的人都知道,nginx+lua与现在流行的n ...

  10. Python基础篇 -- 运算符和编码

    运算符 记熟 ! ! ! 2**1=2 2**2=4 2**3=8 2**4=16 2**5=32 2**6=64 2**7=128 2**8=256 2**9=512 2**10=1024 运算符 ...