Redis 数据类型--Hash

Hash

Hash的常用操作:

HSET key filed value //存储一个hash表的key值

HSETNX key filed value //存储一个不存在的hash表的key的值,注意:是key或者filed不存在时返回成功

HMSET key filed value [filed value ...] // 在一个hash表中存多个filed键值对

HGET key filed   //获取hash表的filed键值

HMGET key filed filed ... //批量获取一个hash表中的filed键值

HDEL key filed field ... //批量删除hash表中的键值

HLEN key //获取hash表中filed的数量

HGETALL key //返回hash表中所有的filed键值

HINCRBY key filed increment //给hash中的filed 键值加1

引用场景举例:

1、利用如下方式存储用户信息

HMSET user {userid}:name value {userid}:age value

存储:HMSET user 1:name fly 1:age 18

查看:HMGET user 1:name 1:age

2、电商购物车

  1、以用户id为key

  2、商品id为filed

  3、商品数量为value

 购物车操作:

  1)添加商品:hset cart:1001 10008 1(1001 为用户id ,10008 为商品id,添加一个到购物车中)

  2)增加数量:hincrby cart:1001 10008 1

  3)商品总量:hlen cart:1001 10008

  4)删除商品:hdel cart:1001 10008

  5)获取购物车所有商品:hgetall cart:1001

优点:

  1)同类数据归类整合存储,方便数据管理

  2)相比string操作消耗的内存和CPU更小

  3)相比string存储更加节省空间

缺点:

  1)过期功能不能用在filed 上,只能用在key上

  2)redis集群架构下不适合大规模使用(例如几亿的用户数据不可能都放到一个user下)

原文地址:https://www.cnblogs.com/flycc/p/12670558.html

时间: 2024-10-28 15:17:27

Redis 数据类型--Hash的相关文章

redis 数据类型Hash

redis的Hash数据类型: hash数据类型 Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象. 创建map: hmset map c "c++" j "java" p "php" // 创建map,同时添加多个key // 同时将多个key-value(字段-值)对设置到哈希表中 hset map bj "baoji" // 创建map,同时添加一个key,之后我

Redis数据类型--hash

Redis 的 哈希值是字符串字段和字符串值之间的映射 相比于string等数据类型,其提供了很多方便的域操作,因此在表示对象时,是非常适合的数据类型 在redis中的哈希值存储容量是非常巨大的,可以存储超过40亿键值对 将Redis中的Hash类型看成具有String Key和String Value的map容器.所以该类型非常适合于存储值对象的信息.如Username.Password和Age等 hash是一些列key value(field value)的映射表.常常用其存储一些对象实例.

redis数据类型——hash

——转载: 一.概述: 我们可以将Redis中的Hashes类型看成具有String Key和String Value的map容器.所以该类型非常适合于存储值对象的信息.如Username.Password和Age等.如果Hash中包含很少的字段,那么该类型的数据也将仅占用很少的磁盘空间.每一个Hash可以存储4294967295个键值对. 二.相关命令列表: 命令原型 时间复杂度 命令描述 返回值 HSET key field value O(1) 为指定的Key设定Field/Value对,

redis介绍、redis安装、redis持久化、redis数据类型

一:redis介绍 Redis和Memcached类似,也属于k-v数据存储Redis官网redis.io, 当前最新稳定版4.0.1支持更多value类型,除了和string外,还支持hash.lists(链表).sets(集合)和sorted sets(有序集合)redis使用了两种文件格式:全量数据(RDB)和增量请求(aof).全量数据格式是把内存中的数据写入磁盘,便于下次读取文件进行加载.增量请求文件则是把内存中的数据序列化为操作请求,用于读取文件进行replay得到数据,这种类似于m

redis数据类型

Redis 数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). String(字符串) string是redis最基本的类型,一个key对应一个value. string类型是二进制安全的.意思是redis的string可以包含任何数据.比如jpg图片或者序列化的对象 . string类型是Redis最基本的数据类型,一个键最大能存储512MB. 实例: 在以上实例中我们使用了 Redis

Redis数据类型之字典

Redis数据类型之字典 标签(空格分隔): redis redis的字典 字典又称符号表(symbol table),关联数组(associative array),或者映射(map).是用于保存键值对的一种抽象数据结构. 字典的key是唯一的,对键值对的操作基本都是基于key来操作的.redis中的数据库底层是使用字典来实现的,对于数据库的增删改查都是基于字典来实现的.redis的哈希键也是基于字典来实现的. 具体的实现是在src下的dict.h和dict.c文件 字典的数据结构 哈希表结点

redis 数据类型详解 以及 redis适用场景场合

1.  MySql+Memcached架构的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量的不断增加,和访问量的持续增长,我们遇到了很多问题: 1.MySQL需要不断进行拆库拆表,Memcached也需不断跟着扩容,扩容和维护工作占据大量开发时间. 2.Memcached与MySQL数据库数据一致性问题. 3.Memcached数据命中率低或down机,大量访问直接穿透到DB,MySQL无

Redis数据类型简介

Redis 数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). String(字符串) string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value. string类型是二进制安全的.意思是redis的string可以包含任何数据.比如jpg图片或者序列化的对象 . string类型是Redis最基本的数据类型,一个键最大能存储512M

redis数据类型及使用场景

Redis数据类型  String: Strings 数据结构是简单的key-value类型,value其实不仅是String,也可以是数字. 常用命令:  set,get,decr,incr,mget 等. 应用场景:String是最常用的一种数据类型,普通的key/ value 存储都可以归为此类.即可以完全实现目前 Memcached 的功能,并且效率更高.还可以享受Redis的定时持久化,操作日志及 Replication等功能.除了提供与 Memcached 一样的get.set.in