Redis的哈希值是字符串字段和字符串值之间的映射,所以他们是表示对象的完美数据类型

在Redis中的哈希值,可存储超过400十亿键值对。

redis 提供了2套操纵 一种是批量 一种是非批量

假设需要存储一个用户信息

批量操作

定义一个key为user1的hash 包含属性 name=xstao、age=22、sex=1、password=123 并获取user1中name的属性值

redis 127.0.0.1:6379[1]> hmset user1 name xstao age 22 sex 1 password 123
OK
redis 127.0.0.1:6379[1]> hmget user1 name
1) "xstao"

获取user1的全部key 、 value、全部的key value

redis 127.0.0.1:6379[1]> hgetall user1
1) "name"
2) "xstao"
3) "age"
4) "22"
5) "sex"
6) "1"
7) "password"
8) "123"
redis 127.0.0.1:6379[1]> hkeys user1
1) "name"
2) "age"
3) "sex"
4) "password"
redis 127.0.0.1:6379[1]> hvals user1
1) "xstao"
2) "22"
3) "1"
4) "123"

获取user1这个hash的字段数量

redis 127.0.0.1:6379[1]> hlen user1
(integer) 4

为hash user1添加一个字段 并查看添加后的数据结构

redis 127.0.0.1:6379[1]> hmset user1 ext1 test
OK
redis 127.0.0.1:6379[1]> hgetall user1
1) "name"
2) "xstao"
3) "age"
4) "22"
5) "sex"
6) "1"
7) "password"
8) "123"
9) "ext1"
10) "test"

更新key为user1 sex的值为0 并返回赋值成功后的新值

redis 127.0.0.1:6379[1]> hset user1 sex 0
(integer) 0

非批量

从命令格式上来看批量都加了m 而非批量都没有 比如批量hmset 非批量 hset

定义一个哈希表user2 第一次执行成功 ,第二次执行批量添加失败了。因为hset仅支持单个添加

redis 127.0.0.1:6379[1]> hset user2 name abc
(integer) 1
redis 127.0.0.1:6379[1]> hset user3 name abc age 2
(error) ERR wrong number of arguments for 'hset' command
redis 127.0.0.1:6379[1]>

其他一些常用命令命令

//判断user1中name是否存在 返回1表示已存在 返回0标识没有这个name字段key
redis 127.0.0.1:6379[1]> hexists user1 name
(integer) 1
//针对user1 中age(年龄)字段自增2 返回自增后的值
redis 127.0.0.1:6379[1]> hincrby user1 age 2
(integer) 24
//针对user1 中age(年龄)字段浮点数自增2.5 返回自增后的值
redis 127.0.0.1:6379[1]> hincrbyfloat user1 age 2.5
"28.5"

Redis[三] @Hash 哈希的更多相关文章

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

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

  2. 2、使用HashOperations操作redis(Hash哈希表)

    文章来源:https://www.cnblogs.com/shiguotao-com/p/10560458.html 方法 c参数 s说明 Long delete(H key, Object... h ...

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

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

  4. 8、Redis五大数据类型---哈希(Hash)

    一.哈希(Hash)简介: Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象. Redis hash 是一个键值对集合. 二.常用命令 1.h ...

  5. 后端利用Redis队列及哈希实现定时推送提醒的三个思路

    周煦辰 2016年8月31日 本文介绍了一下本人在开发过程中遇到"定时推送提醒"的需求的时候所思考的三种解决方案. 明确问题 首先明确一下这个需求可能包含的几个"坑&qu ...

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

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

  7. 面试官:说说Redis的Hash底层 我:......(来自阅文的面试题)

    redis源码分析系列文章 [Redis源码系列]在Liunx安装和常见API 为什么要从Redis源码分析 String底层实现——动态字符串SDS Redis的双向链表一文全知道 前言 hello ...

  8. redis(三)-----redis基本数据类型

    Redis的全称是REmote Dictionary Server,它主要提供了5种数据结构:字符串.哈希.列表.集合.有序集合,同时在字符串的基础之上演变 出了位图(Bitmaps)和HyperLo ...

  9. Hash哈希(一)

    Hash哈希(一) 哈希是大家比较常见一个词语,在编程中也经常用到,但是大多数人都是知其然而不知其所以然,再加上这几天想写一个一致性哈希算法,突然想想对哈希也不是很清楚,所以,抽点时间总结下Hash知 ...

随机推荐

  1. InnoDB关键特性之自适应hash索引

    一.索引的资源消耗分析 1.索引三大特点 1.小:只在一个到多个列建立索引 2.有序:可以快速定位终点 3.有棵树:可以定位起点,树高一般小于等于3 2.索引的资源消耗点 1.树的高度,顺序访问索引的 ...

  2. Nginx+keepalive局域网其它主机ping vip不通

    有两台高可用server server1  192.168.11.10 server2  192.168.11.11 vip :192.168.11.12 配置好keepalive之后在server1 ...

  3. Node.js 入门:Express + Mongoose 基础使用

    前言 Express 是基于 Node.js 平台的 web 应用开发框架,在学习了 Node.js 的基础知识后,可以使用 Express 框架来搭建一个 web 应用,实现对数据库的增删查改. 数 ...

  4. UnityShader之遮挡透明

    好久没写博客了,最近在学shader,不得不说,shader真的非常美妙,我沉迷其中无法自拔= = 之前做过一个遮挡透明的功能,当物体遮挡住主角时,该物体会变成半透明显示出主角.这次同样是遮挡透明的功 ...

  5. mysql常用sql命令

    一.连接MYSQL. 格式: mysql -h主机地址 -u用户名 -p用户密码 1.连接到本机上的MYSQL. 首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u roo ...

  6. ABP:在多语句事务内不允许使用 CREATE DATABASE 语句

    一.问题 使用ef codefirst开发,无法创建数据库的问题,如下提示 Server Error in '/' Application. 在多语句事务内不允许使用 CREATE DATABASE ...

  7. ETL作业调度工具TASKCTL的两个重大突破

    在传统设计理念下,流程图的可视化.作业流的定义设计功能,随着作业量增加,越来越难用,越来越不适用是一个难以避免的问题.就这两个问题,我给大家分享一下TASKCTL是如何转变思路.如何突破.如何带来一些 ...

  8. linux C语言处理正则表达式

    Linux下C语言处理正则表达式——regex.h 具体函数介绍 编译正则表达式函数 int regcomp(regex_t *preg, const char *regex, int cflags) ...

  9. golang的闭包和普通函数调用区别

    先看一段程序 package main import ( "fmt") func main() {  a := []int{1, 2, 3}  for _, i := range ...

  10. 米扑代理示例(mimvp-proxy-demo)

    米扑代理示例(mimvp-proxy-demo) 米扑代理示例(mimvp-proxy-demo)聚合了多种编程语言使用代理IP,由北京米扑科技有限公司(mimvp.com)原创分享. 米扑代理示例, ...