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. SP Flash Tool New Version v5.1352.01

    Friends, Sp Tool updated to new version with whole new revamped interface New SP Flash Tool 3.1352.0 ...

  2. mongodbtemplate配置

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  3. ArcGIS 10——版本编辑流程

    上一篇文章学习了ArcGIS有关版本机制实现的基本原理,本文结合ArcGIS的数据编辑知识来将版本编辑.协调.解决冲突.提交更改的整个过程加以说明. 同上篇文章一样,写作本文的初始意图是因为目前的项目 ...

  4. jQuery 批量操作checkbox

    困扰很久的问题: 如果只是 $('input[type=checkbox]').attr('checked',true);//全选 $('input[type=checkbox]').attr('ch ...

  5. Keepalived保证Nginx高可用配置

    Keepalived保证Nginx高可用配置部署环境 keepalived-1.2.18 nginx-1.6.2 VM虚拟机redhat6.5-x64:192.168.1.201.192.168.1. ...

  6. Git本地仓库与远程github同步的时候提示fatal: remote origin already exists 错误解决办法

    Git本地仓库与远程github同步的时候提示fatal: remote origin already exists 错误解决办法 1.git在本地的电脑创建了仓库,要远程同步github的仓库.使用 ...

  7. 拉取远程仓库到本地错误The authenticity of host 'github.com (13.229.188.59)' can't be established.

    1.个人在github上面创建了仓库,通过本地的git拉取远程仓库到本地报错信息如下: 这是因为Git使用SSH连接,而SSH第一次连接需要验证GitHub服务器的Key.确认GitHub的Key的指 ...

  8. 08: CORS实现跨域请求

    目录: 1.1 cors跨域请求介绍 1.2 使用tornado实现 复杂请求 1.3 Django中使用django-cors-headers解决跨域问题 1.1 cors跨域请求介绍返回顶部 1. ...

  9. GitHub Desktop离线安装包

    GitHub Desktop离线安装包.上传时间是2017-02-05 版本3.3.4.0,Git shell版本是v2.11.0. 百度网盘的下载链接: http://pan.baidu.com/s ...

  10. 20145104张家明 《Java程序设计》第7周学习总结

    20145104张家明 <Java程序设计>第7周学习总结 教材学习内容总结 第13章 简单认识时间和日期 -时间的度量:GMT.UT.TAI.UTC.Unix.epoch. -UTC:保 ...