8、Redis五大数据类型---哈希(Hash)
一、哈希(Hash)简介:
- Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。
- Redis hash 是一个键值对集合。
二、常用命令
1、hset 语法:hset <key> <field> <value>给<key>集合中的 <field>键赋值<value>
127.0.0.1:6379> hset k1 name zhangsan age 12 phone 1231312 #k1里存值
(integer) 3
127.0.0.1:6379> hget k1 name
"zhangsan"
127.0.0.1:6379> hget k1 phone
"1231312"
127.0.0.1:6379> hset k1 name lisi #修改k1里的name的值为李四,返回0
(integer) 0
127.0.0.1:6379> hget k1 name #获取name对应的值
"lisi"
127.0.0.1:6379> hgetall k1
1) "name"
2) "lisi"
3) "age"
4) "12"
5) "phone"
6) "1231312"
127.0.0.1:6379>
2、hget 语法:hget <key1><field>从<key1>集合<field>取出 value
127.0.0.1:6379> hgetall k1
1) "name"
2) "zhangsan"
3) "age"
4) "12"
5) "phone"
6) "1231231"
127.0.0.1:6379> hget k1 name #获取k1集合里的name对应的值
"zhangsan"
127.0.0.1:6379>
3、hmset 语法:hmset <key1><field1><value1><field2><value2>... 批量设置hash的值,会覆盖已存在的值
127.0.0.1:6379> hmset k1 name zhangsan age 22 phone 128909908731 #批量给k1设置对应的值
OK
127.0.0.1:6379> hget k1 name
"zhangsan"
127.0.0.1:6379> hget k1 age
"22"
127.0.0.1:6379> hget k1 phone
"128909908731"
4、hexists`语法:hexists ·查看哈希表 key 中,给定域 field 是否存在。
127.0.0.1:6379> hgetall k1
1) "name"
2) "zhangsan"
3) "age"
4) "22"
5) "phone"
6) "128909908731"
127.0.0.1:6379> hexists k1 name #判断k1中name对应的值是否存在,存在就返回1,反之返回0
(integer) 1
127.0.0.1:6379> hexists k1 sex
(integer) 0
127.0.0.1:6379>
5、hkeys 语法:hkeys <key>列出该hash集合的所有field
127.0.0.1:6379> hgetall k1
1) "name"
2) "zhangsan"
3) "age"
4) "22"
5) "phone"
6) "128909908731"
127.0.0.1:6379> hkeys k1 #展示出k1里面的所有filed值
1) "name"
2) "age"
3) "phone"
127.0.0.1:6379>
6、hvals 语法:hvals <key>列出该hash集合的所有value
127.0.0.1:6379> hgetall k1
1) "name"
2) "zhangsan"
3) "age"
4) "22"
5) "phone"
6) "128909908731"
127.0.0.1:6379> hvals k1 #获取k1中所有的value值
1) "zhangsan"
2) "22"
3) "128909908731"
127.0.0.1:6379>
7、hincrby 语法:hincrby <key><field><increment>为哈希表 key 中的域 field 的值加上增量 1 -1
127.0.0.1:6379> hset k1 age 12
(integer) 1
127.0.0.1:6379> hget k1 age
"12"
127.0.0.1:6379> hincrby k1 age 3 #让年龄增加3
(integer) 15
8、hsetnx 语法<:hsetnx key><field><value>将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在.
127.0.0.1:6379> hgetall k1
1) "age"
2) "15"
127.0.0.1:6379> hsetnx k1 age 12 #设置存在的filed的值,返回0
(integer) 0
127.0.0.1:6379> hget k1 age
"15"
127.0.0.1:6379> hsetnx k1 name zhangsan #设置不存的filed值,返回1,设置成功
(integer) 1
127.0.0.1:6379> hget k1 name
"zhangsan"
三、总结
- 适合存储对象,如用户信息,商品信息
127.0.0.1:6379> hset user:1 name why
(integer) 1
127.0.0.1:6379> hget user:1 name
"why"
127.0.0.1:6379> hset user:2 name lisi
(integer) 1
127.0.0.1:6379> hget user:2 name
"lisi"
- 计数器
- Redis 哈希表作为计数器的使用也非常广泛。它常常被用在记录网站每一天、一月、一年的访问数量。每一次访问,我们在对应的field上自增1
#记录商品的好评数量,差评数量上
127.0.0.1:6379> HINCRBY pid:1 Good 1
(integer) 1
127.0.0.1:6379> HINCRBY pid:1 Good 1
(integer) 2
127.0.0.1:6379> HINCRBY pid:1 bad 1
(integer) 1
本章redis的hash值,就介绍到这里,有不足指出请在评论区指出,大家一起学习!
8、Redis五大数据类型---哈希(Hash)的更多相关文章
- Redis五大数据类型的常用操作
在上一篇博文<centos安装redis>中,已经详细介绍了如何在centos上安装redis,今天主要介绍下Redis五大数据类型及其五大数据类型的相关操作. Redis支持五种数据类型 ...
- 一文搞定Redis五大数据类型及应用场景
本文学习知识点 redis五大数据类型数据类型:string.hash.list.set.sorted_set 五大类型各自的应用场景 @TOC 1. string类型 1-1 string类型数据的 ...
- redis 五大数据类型使用
redis 五大数据类型使用 字符串str 单个值 127.0.0.1:6379> set name pp # 设置键值[O(1)] OK 127.0.0.1:6379> setex na ...
- Python操作redis系列以 哈希(Hash)命令详解(四)
# -*- coding: utf-8 -*- import redis #这个redis不能用,请根据自己的需要修改 r =redis.Redis(host=") 1. Hset 命令用于 ...
- Redis五大数据类型详解
关于Redis的五大数据类型,它们分别为:String.List.Hash.Set.SortSet.本文将会从它的底层数据结构.常用操作命令.一些特点和实际应用这几个方面进行解析.对于数据结构的解析, ...
- redis五大数据类型以及常用操作命令
Redis的五大数据类型 String(字符串) string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value.string类型是二进制安全的.意 ...
- 四:Redis五大数据类型
Redis的五大数据类型 1.string(字符串) string是Redis最基本的类型,你可以理解成与menmcached一模一样的类型,一个key对应一个value string类型是二进制安全 ...
- 《Redis入门指南(第二版)》读书思考总结之Redis五大数据类型
热身:系统级命令 1. 获得符合规则的键名列表 KEYS pattern 模式匹配 产品的缓存:product+"."+....; => keys product* 订单的 ...
- Redis中的哈希(Hash)
Redis 哈希(Hash) Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象. Redis 中每个 hash 可以存储 232 - 1 键值 ...
随机推荐
- js 增删节点
<html><head><meta http-equiv="Content-Type" content="text/html; charse ...
- CPU被挖矿,Redis竟是内鬼!
却说这一日,Redis正如往常一般工作,不久便收到了一条SAVE命令. 虽说这Redis常被用来当做缓存,数据只存在于内存中,却也能通过SAVE命令将内存中的数据保存到磁盘文件中以便持久化存储. 只见 ...
- 【Linux】解压分卷压缩的zip文件
例如linux.zip.001, linux.zip.002, linux.zip.003. 1. cat linux.zip* > linux.zip #合并为一个zip包. 2. unzip ...
- [atAGC045B]01 Unbalanced
将0变为-1后求前缀和,那么$s$的价值即为最大的前缀和-最小的前缀和(特别的,空前缀的前缀和为0) 令$f(x)$表示当最大的前缀和不大于$x$时,最小的前缀和最大是多少,答案即为$\min_{x} ...
- [loj3176]景点划分
不妨设$a\le b\le c$,那么相当于要找到两个大小至少为$a$和$b$的连通块(连通块可以通过删除度最小的点变小) 以一个点为根建出dfs树并对以下情况分类讨论: 1.存在一个节点满足$\ma ...
- 跟着老猫来搞GO-内建容器Map
前期回顾 在上面的文章中,老猫和大家分享了GO语言中比较重要的两种数据结构,一种是数组,另外一种是基于数组的slice.本篇文章想要继续和大家分享剩下的容器以及字符字符串的处理. MAP map的定义 ...
- 第05章 MySQL排序与分页
第05章 MySQL排序与分页 1. 排序数据 1.1 排序规则 使用 ORDER BY 子句排序 ASC(ascend): 升序 DESC(descend):降序 ORDER BY 子句在SELEC ...
- NLP 开源形近字算法补完计划(完结篇)
前言 所有的故事都有开始,也终将结束. 本文将作为 NLP 汉字相似度的完结篇,为该系列画上一个句号. 起-NLP 中文形近字相似度计算思路 承-中文形近字相似度算法实现,为汉字 NLP 尽一点绵薄之 ...
- 什么是H5
H5其实就是HTML5 常说的H5测试,就是移动端web页面,他跟安卓app与IOS app的区别: (1)以往的app是使用的原生系统内核的,相当于直接在系统上操作,是传统意义上的软件,更加稳定 ( ...
- MySQL 的查询优化
说起 MySQL 的查询优化,相信大家收藏了一堆奇技淫巧:不能使用 SELECT *.不使用 NULL 字段.合理创建索引.为字段选择合适的数据类型..... 你是否真的理解这些优化技巧?是否理解它背 ...