5、数据类型三:hash

Hash数据类型使用很普遍,它同样是key-value的方式来组织的,只是其value又包含多个field-fieldValue对。想要获取某个fieldValue,可以通过key-field联合来定位。

          图1. hash类型数据组织形式

从上“图1”可以很好的hash数据的组织形式和用途。比如,系统里面有很多用户,那么如何在redis里面存放用户信息呢?“图1”就展示了如何使用hash数据类型来存放用户信息,使用key来唯一标识用户id,value分别对应用户的“名字、年龄”等信息。

1、常用命令

HSET key field value
HSETNX key field value
HGET key field

HMSET key field value [field value ...]
HMGET key field [field ...]
HGETALL key
HKEYS key
HVALS key

HINCRBY key field increment
HINCRBYFLOAT key field increment

HLEN key
HSTRLEN key field

HDEL key field [field ...]
HEXISTS key field

2、命令解析

①、HSET key field value / HSETNX key field value

功能:设置一个哈希值。HSETNX则会检测field是否存在,如果不存在则添加,存在则不作处理。

时间复杂度:O(1)

example

②、HGETALL key

功能:通过哈希的key来获取其所有的field-fieldValue键值对。

时间复杂度:O(N) ,N是hash中field-fieldValue个数。

example

③、HGETALL key / HKEYS key / HVALS key

功能:HGETALL获取key下面的所有field-fieldValue对;HKEYS获取key下面的所有field值;HVALS key获取key下面所有的fieldValue值。

时间复杂度: O(N)

example

④、HLEN key / HSTRLEN key field

功能:HLEN获取哈希中field-fieldValue对的个数。HSTRLEN测量具体fieldValue的字符长度(3.2.0才有的命令)。

时间复杂度:O(1)

example

时间: 2024-12-16 10:58:53

5、数据类型三:hash的相关文章

Oracle之PL/SQL学习笔记之数据类型(三)

Oracle之PL/SQL学习笔记之数据类型(三) 所有的编程语言中变量是使用最频繁的.PL/SQL作为一个面向过程的数据库编程语言同样少不了变量,利用变量可以把PL/SQL块需要的参数传递进来,做到动态执行程序,同时也可以利用变量在PL/SQL内部进行值得传递,甚至可以把值传递出去,最终返回给用户,由此可见,变量是PL/SQL不可或缺的一部分. 1. Oracle预定义的普通数据类型(常见的数据类型) 类型 子类 说明 Oracle中的范围 char Character,String Rowi

Py西游攻关之基础数据类型(三)-元组

Py西游攻关之基础数据类型 - Yuan先生 https://www.cnblogs.com/yuanchenqi/articles/5782764.html 六 tuple(元组) 元组被称为只读列表,即数据可以被查询,但不能被修改,所以,列表的切片操作同样适用于元组. 元组写在小括号(())里,元素之间用逗号隔开. 虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表. 构造包含 0 个或 1 个元素的元组比较特殊,所以有一些额外的语法规则: tup1 = () # 空元组

Redis笔记-Hash数据类型(三)

Hash是一个string类型的field和value的映射表. 它的添加.删除操作都是0(1)(平均).hash特别适合用于存储对象. 相较于将对象的每个字段存成单个string类型,将一个对象存储在hash类型中 会占用更少的内存,并且可以更方便的存取整个对象. hset 设置hash field为指定值,如果key不存在,刚先创建 127.0.0.1:6379> hset user:001 name lijie (integer) 1 127.0.0.1:6379> hget user:

python3基础二——基本的数据类型三

一.字符串str 1.创建字符串,为变量分配一个值 1 word='字符串' 2 sentence="字符串\n" #python中单引号和双引号使用完全相同 3 paragraph="""这是一个段落 4 可以有多行组成""" #使用三引号('''或""")可以指定一个多行字符串 5 print(word,sentence,paragraph) 6 -----------------------

redis数据类型之-Hash

(1)Hash简介 Hash类型适合存储对象,字段值只能是字符串,不支持其他数据类型. (2)Hash常用命令 // 增加hash属性值 > hset user:100 name zm (integer) 1 > hset user:100 age 30 (integer) 1 > hset user:100 sex 1 (integer) 1 // 获取指定的某个属性的值 > hget user:100 sex "1" // 获取指定的多个属性的值 >

万恶之源 - Python基础数据类型三

字典 字典的简单介绍 字典(dict)是python中唯?的?个映射类型.他是以{ }括起来的键值对组成. 在dict中key是 唯?的.在保存的时候, 根据key来计算出?个内存地址. 然后将key-value保存在这个地址中. 这种算法被称为hash算法, 所以, 切记, 在dict中存储的key-value中的key必须是可hash的, 如果你搞不懂什么是可哈希, 暂时可以这样记, 可以改变的都是不可哈希的, 那么可哈希就意味着不可变. 这个是为了能准确的计算内存地址?规定的. 已知的可哈

redis数据类型三之set的操作命令

1.还是看看redis的官方文档:               如图示,redis set 是一种不重复的字符串集合,(它和 list 数据类型的差别就是在不重复上),执行 SADD指令可以添加新的元素到一个 set 集合中.也可以对 set 执行一些其他的操作,如判断一个给定的元素是否已经存在到呢个.(和 list 数据类型一样,是单 key 多值). 2.set 的一些操作指令: a.sadd/smembers/sismember: 追加或者新建一个 set 集合/查寻一个 set 集合/判

Redis数据类型之HASH类型

Web程序猿博客:http://blog.csdn.net/thinkercode HASH类型-特点 Redis hash 是一个 string 类型的 field 和 value 的映射表.它的添加. 删除操作都是 O(1) (平均) . hash 特别适合用于存储对象. 相较于将对象的每个字段存成单个 string 类型. 将一个对象存储在 hash 类型中会占用更少的内存,并且可以更方便的存取整个对象.省内存的原因是新建一个 hash 对象时开始是用 zipmap(又称为 small h

MySQL基础知识03数据类型(三)日期时间相关类型

1. DATE DATE类型只包含日期,格式:'YYYY-MM-DD'.范围从'0000-01-01'到'9999-12-31'.其中年月日只能输入有效的年月日. mysql> create table d1 ( id  date primary key); Query OK, 0 rows affected (0.02 sec) mysql> show create table d1; +-------+--------------------------------------------