redis常用的数据类型以及每种数据类型的特点,redis的六种数据类型
Yyds干货库存
前言我们都知道Redis提供了丰富的数据类型,常见的有五种:String(字符串)、Hash(哈希)、List(列表)、Set(集合)和Zset(有序集)。
今天我们来详细说说Redis的五种常见数据类型之一hash
结构类型
结构的存储值
结构读写能力
哈希
包含键值对的无序哈希表;
添加、获取和删除单个元素;
应用场景:缓存对象、购物车等。
简介Hash是一组键值对,其中value的形式如下:value=[{field1,value1},{fieldN,valueen}]。哈希特别适合存储对象。
HashString对象和HashString对象的区别如下图所示:
实现内部哈希类型的底层数据结构由压缩列表或哈希表实现:
如果hash类型元素个数小于512(默认值,可通过hash-max-ziplist-entries配置)且所有值小于64字节(默认值,可通过hash-max-ziplist-value配置),Redis将使用压缩列表作为Hash类型的底层数据结构;如果哈希类型元素不满足上述条件,Redis将使用哈希表作为哈希类型的底层数据结构。在最新版本的Redis中,压缩列表数据结构已经被放弃,它已经由listpack数据结构实现。
公共命令#存储散列表键的键值。
# HSET关键字段值[字段值.]
127.0.0.1:6379 HSET usr1名称sid10t
(整数)1
HSET usr1姓名sid10t年龄19
(整数)1
#获取与哈希表键对应的字段键值
# HGET关键字段
127.0.0.1:6379 HGET usr1名称
sid10t
#在散列表键中存储多个键值对
# HMSET关键字段值[字段值.]
127 . 0 . 0 . 1:6379 HMSET usr 2 name sidiot 18岁
好
#批量获取哈希表关键字中的多个字段键值
# HMGET关键字段[field.]
127.0.0.1:6379 HMGET usr2名称年龄
1)“西迪奥”
2) 18
#删除哈希表键中的字段键值
# HDEL关键字段[字段.]
127.0.0.1:6379 HDEL usr1年龄
(整数)1
127.0.0.1:6379 HDEL usr2名称年龄
(整数)2
#返回哈希表键中字段的数量
# HLEN键
127.0.0.1:6379 HLEN usr1
(整数)1
127.0.0.1:6379 HLEN usr2
(整数)0
#返回哈希表键中的所有键值
# h金属键
127.0.0.1:6379总汞usr1
1)“名称”
2)“sid 10t”
127.0.0.1:6379总汞usr2
(空数组)
#为哈希表关键字中的字段关键字值添加增量
# HINCRBY关键字段增量
127.0.0.1:6379 HINCRBY usr1年龄1
(整数)19
#确定哈希表中指定的字段是否存在。
# HEXISTS关键字段
127.0.0.1:6379 HEXISTS usr1名称
(整数)1
127.0.0.1:6379 HEXISTS usr1信息
(整数)0
#获取哈希表中的所有字段
# HKEYS键
127.0.0.1:6379港元
1)“名称”
2)“年龄”
1:6379港元
(空数组)
#获取哈希表中的所有值
# HVALS键
127.0.0.1:6379 HVALS usr1
1)“sid 10t”
2) 19
127.0.0.1:6379 HVALS usr2
(空数组)应用场景缓存对象的Hash类型(key,field,value)的结构和对象(object id,attribute,value)的结构类似,也可以用来存储对象。
我们以用户信息为例。它在关系数据库中的结构如下:
用户界面设计(User Interface Design的缩写)
名字
年龄
一个
sid10t
18
2
西迪奥特
16
我们可以使用下面的命令将用户对象的信息存储到哈希类型中:
#存储哈希表的键值uid:1
HSET uid1姓名sid10t年龄18
(整数)2
#存储哈希表的键值uid:2
127.0.0.1:6379 HSET uid2姓名西迪奥16岁
(整数)2
#获取用户id为1的哈希表中的所有键值
127.0.0.1:6379金属指南1
1)“名称”
2)“sid 10t”
3)“年龄”
4) 18
# .Redis哈希存储结构如下:
它是在字符串类型的应用场景中引入的。String Json也是一种存储对象的方式。那么,在存储对象时,是用字符串json还是Hash呢?
一般对象存储在String Json中,对象中一些经常变化的属性可以提取出来以Hash类型存储。
购物车的用户id是key,商品id是field,商品数量是value,正好构成了购物车的三个元素,如下图所示。
涉及的命令如下:
添加商品:HSET购物车:{用户id} {商品id} 1添加数量:HINCRBY购物车:{用户id} {商品id} 1总商品:HLEN购物车:{用户id}删除商品:HDEL购物车:{用户id } {商品id }获取购物车中的所有商品:HGETALL购物车:{用户id }目前Redis中只存储商品id。当商品的具体信息显示回来后,需要用商品ID查询一次数据库,才能得到商品的完整信息。
版权归作者所有:原创作品来自博主小二上九8,转载请联系作者取得转载授权,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。