Hash(哈希)

Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。

Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。

使用场景 : 用户信息

hset : 新建一个哈希表,设置成功返回1,如果已存在覆盖旧值,返回0(值可以为''")

127.0.0.1:6379> hset yhq name yhq
(integer) 1
127.0.0.1:6379> hset yhq name qhh
(integer) 0

hmset: 新建一个哈希表,设置多个k-v,如果已存在会覆盖,成功返回ok(值可以为''")

127.0.0.1:6379> hmsetqhh name yhq age 24 sex 0
OK

hsetnx : 当哈希表不存在时创建并设置且成功返回1,如果已存在无效,返回0

127.0.0.1:6379> hsetnx yhqqhh name qhh
(integer) 1
127.0.0.1:6379> hsetnx yhqqhh name yhq
(integer) 0

hstrlen : 获取指定字段值的长度

127.0.0.1:6379> hmset myhash f1 HelloWorld f2 99 f3 -256
OK
127.0.0.1:6379> hstrlen myhash f1
(integer) 10
127.0.0.1:6379> hstrlen myhash f2
(integer) 2
127.0.0.1:6379> hstrlen myhash f3
(integer) 4

hget : 获取哈希表字段的值,不存在返回nil

127.0.0.1:6379> hget yhq name
"qhh"
127.0.0.1:6379> hget qhh name
"yhq"
127.0.0.1:6379> hget qhh age
"24"
127.0.0.1:6379> hget qhh sex
"0"
127.0.0.1:6379> hget yhq id
(nil)

hgetall : 获取哈希表所有k-v,不存在返回空列表

127.0.0.1:6379> hgetall qhh
1) "name"
2) "yhq"
3) "age"
4) "24"
5) "sex"
6) "0"
127.0.0.1:6379> hgetall q
(empty list or set)

hmget : 获取一个或多个给定的值,不存在返回nil

127.0.0.1:6379> hmget qhh name age a
1) "yhq"
2) "24"
3) (nil)

hdel : 删除一个或者多个哈希表字段,不存在忽略,返回删除字段的个数

127.0.0.1:6379> hgetall qhh
1) "name"
2) "1"
3) "age"
4) "2"
127.0.0.1:6379> hdel qhh age a
(integer) 1
127.0.0.1:6379> hgetall qhh
1) "name"
2) "1"

hexists : 查询哈希表字段是否存在,存在返回1,不存在返回0

127.0.0.1:6379> hgetall must
1) "name"
2) ""
3) "age"
4) "1"
127.0.0.1:6379> hexists must name
(integer) 1
127.0.0.1:6379> hexists must na
(integer) 0

hkeys : 返回哈希表所有的k,key不存在返回空列表

127.0.0.1:6379> hkeys must
1) "name"
2) "age"
127.0.0.1:6379> hkeys must1
(empty list or set)

hvals : 返回哈希表所有k值,key不存在返回空列表

127.0.0.1:6379> hvals must
1) ""
2) "1"
127.0.0.1:6379> hvals must1
(empty list or set)

hlen : 返回哈希表字段数量,key不存在返回0

127.0.0.1:6379> hlen must
(integer) 2

hincrby : 对哈希表字段进行数值增删修改,字段串返回错误,如果不存在则执行创建操作

127.0.0.1:6379> hincrby yhq name 100
(integer) 100
127.0.0.1:6379> hgetall yhq
1) "name"
2) "100"
127.0.0.1:6379> hset yhq sex n
(integer) 1
127.0.0.1:6379> hincrby yhq sex 100
(error) ERR hash value is not an integer
127.0.0.1:6379> hincrby yhq name -100
(integer) 0
127.0.0.1:6379> hgetall yhq
1) "name"
2) "0"
3) "sex"
4) "n"

hincrbyfloat : 对哈希表字段进行数值增删浮点值修改,字段串返回错误,如果不存在则执行创建操作

127.0.0.1:6379> hincrbyfloat yhq size 1.1
"1.1"
127.0.0.1:6379> hincrbyfloat yhq name yhq
(error) ERR value is not a valid float
127.0.0.1:6379> hincrbyfloat yhq size -11.11
"-10.01"
127.0.0.1:6379> hgetall yhq
1) "size"
2) "-10.01"
 
 
 

Redis之哈希类型命令的更多相关文章

  1. redis:hash哈希类型的操作

    1. hash哈希类型的操作 1.1. hset key field value 语法:hset key field value 作用:把key中field域的值设为value 注:如果没有field ...

  2. Redis 常用命令学习三:哈希类型命令

    1.赋值与取值命令 127.0.0.1:6379> hset stu name qiao (integer) 1 127.0.0.1:6379> hset stu sex man (int ...

  3. Redis之无序集合类型命令

    Redis 集合(Set) Redis 的 Set 是 String 类型的无序集合.集合成员是唯一的,这就意味着集合中不能出现重复的数据. Redis 中集合是通过哈希表实现的,所以添加,删除,查找 ...

  4. Redis的List链表类型命令

    List是一个链表结构,主要功能是push.pop.获取一个范围的所有值等等,操作中key理解为链表的名字.list类型其实就是一个每个子元素都是string类型的双向链表.我们可以通过push.po ...

  5. API的理解和使用——哈希类型的命令

    哈希常用的命令复习 命令 功能 hset key field value 设置哈希值 hsetnx 设置哈希值,field或键必须不存在 hget 获取某个file对应的值 hdel 删除一个或多个f ...

  6. redis 学习(4)-- 哈希类型

    redis 学习(4)-- 哈希类型 介绍 redis 中哈希键值结构: 可以看出:哈希键值包括 key,field,value 这三部分,即键,属性,值这三部分.可以这样来表示: key, (fie ...

  7. Redis之字符串类型命令

    String(字符串) string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value. string 类型是二进制安全的.意思是 ...

  8. 第二百九十六节,python操作redis缓存-Hash哈希类型,可以理解为字典类型

    第二百九十六节,python操作redis缓存-Hash哈希类型,可以理解为字典类型 Hash操作,redis中Hash在内存中的存储格式如下图: hset(name, key, value)name ...

  9. Python操作redis系列以 哈希(Hash)命令详解(四)

    # -*- coding: utf-8 -*- import redis #这个redis不能用,请根据自己的需要修改 r =redis.Redis(host=") 1. Hset 命令用于 ...

随机推荐

  1. [转]Visual C++ RunTime的特征——非烫即屯

    Visual C++ RunTime的特征——非烫即屯 大一刚学C语言,第二次上机课,当我发现我照着书抄写的程序在运行之外的黑框里面跳出一排“烫烫烫烫烫”,当时就震惊了.你们能想象一个来自小城, 在大 ...

  2. Nature重磅:Hinton、LeCun、Bengio三巨头权威科普深度学习

    http://wallstreetcn.com/node/248376 借助深度学习,多处理层组成的计算模型可通过多层抽象来学习数据表征( representations).这些方法显著推动了语音识别 ...

  3. tablix“Tablix1”有一个具有内部成员的详细信息成员

    做报表的时候出现了这个错误: 错误 1 tablix“Tablix1”有一个具有内部成员的详细信息成员.详细信息成员只能包含静态内部成员.  解决方案: 原因:在一个报表里面插入两个表格的时候:会出现 ...

  4. MyBatis学习笔记(七)——Mybatis缓存

    转自孤傲苍狼的博客:http://www.cnblogs.com/xdp-gacl/p/4270403.html 一.MyBatis缓存介绍 正如大多数持久层框架一样,MyBatis 同样提供了一级缓 ...

  5. Hive 常用函数汇总

    Hive内部提供了很多函数给开发者使用,包括数学函数,类型转换函数,条件函数,字符函数,聚合函数,表生成函数等等,这些函数都统称为内置函数. 目录 数学函数 集合函数 类型转换函数 日期函数 条件函数 ...

  6. pycharm 设置文件编码的位置:Editor-->File Encodings

    打开设置-->Editor-->File Encodings 

  7. linux测试带宽命令,Linux服务器网络带宽测试iperf

    linux测试带宽命令,Linux服务器网络带宽测试iperf必须先运行iperf serveriperf -s -i 2客户端iperf -c 服务端IP地址 iperf原理解析 iperf工具可以 ...

  8. Maven的scope的值

    Maven的依赖范围 在pom.xml文件中,有个元素是scope,用来表示依赖的范围.之所以会有依赖范围,是因为Maven在编译.测试和运行项目时会各自使用一套classpath,依赖范围就是用来控 ...

  9. 用CSS让字体在一行内显示不换行

    青枫 , 2012/07/13 18:08 , css样式设计 , 评论(0) , 阅读(2189) , Via 本站原创 大 | 中 | 小  当一行文字超过DIV或者Table的宽度的时候,浏览器 ...

  10. Collection体系