90、Redis 的 value 所支持的数据类型(String、List、Set、Zset、Hash)---->Hash 相关命令

本次讲解要点:
Hash 相关命令:是指value中的数据类型

启动redis服务器:

打开小黑窗:

C:\Users\JH>e:

E:>cd E:\install\Redis6.0\Redis-x64-6.0.14\bin

E:\install\Redis6.0\Redis-x64-6.0.14\bin>redis-server.exe redis.windows.conf

dir 查看该文件夹里面的所有文件

启动redis客户端:

小黑窗:redis-cli

★ Redis的数据类型(都是针对Redis的value而言)

redis和map差不多。

Map 只能保存在内存中,

redis可以保存在磁盘。

Redis的key都是String

▲ value支持如下5种数据类型:

String: 最基本的数据类型,可保存任何的数据。
List: 元素是String的有序集合,集合内的元素可以重复。
Set: 元素是String的无序集合,集合内的数据不能重复。
Zset: 元素是String的有序集合,集合内的数据不能重复。
Hash: 也是key-value集合(类似Java的Map),key和value都是String类型的数据。这种类型主要用于保存对象。

Redis为不同数据类型提供了不同的操作命令,因此特定类型的数据需要使用对应类型的命令来执行操作。

★ Hash相关的命令

Hash类型是一个key和value都是String类型的key-value对。

(这句话我觉得应该是只有value才是String类型的key(field)-value对,key的话就只是key而已,不是key-value对)

key是不允许重复的。但value是可以重复的。

Hash类型适合存储对象。每个Hash最多可存储2^32 - 1个key-value对

关于命令中的参数的说明,其中key相当于是hash对象的名字,而field才是该hash对象中的key。

field 就是 value 里面的 键值对里面的key

HDEL key field [field ...]: 删除Hash对象中一个或多个key-value对。此处的field参数其实代表Hash对象中的key,后面的field参数皆如此。

HEXISTS key field: 判断Hash对象指定的key是否存在。

HGET key field: 获取Hash对象中指定key对应的value。

HGETALL key: 获取Hash对象中所有key-value对。

HINCRBY key field increment: 为Hash对象指定的key增加increment。

它也要要求key指定的hash对象的field所对应value必须能转换成数值。

HINCRBYFLOAT key field increment: HINCRBY的浮点数版本,支持小数。

HKEYS key: 获取Hash对象中所有key。

HLEN key: 获取Hash对象中key-value对的数量。

HMGET key field [field...]: HGET的加强版,可同时获取多个key对应的value。

HSET key field value: 为Hash对象设置一组key-value对。如果field对应的key已经存在,

新设置的value将会覆盖原有的value。

HMSET key field value [field value ...]: HSET的加强版,可同时设置多个key-value对。

HSETNX key field value: HSET的安全版本,只有当field对应的key不存在时,才能设置成功。

该方法保证不会发生覆盖。

HSTRLEN key field: 获取Hash对象指定key对应value的字符串长度。

HVALS key: 获取Hash对象所有的value。

HSCAN key cursor [MATCH pattern] [COUNT count]: 遍历Hash对象。此处的count不起作用。

演示

HSET key field value: 为Hash对象设置一组key-value对。如果field对应的key已经存在,

新设置的value将会覆盖原有的value。

经测试,hset 也可以设置多个 key-value 对

HMSET key field value [field value ...]: HSET的加强版,可同时设置多个key-value对。

结合上面的图,可以看到用 hmset 设置多个key-value 对时,如果field对应的key已经存在,

新设置的value将会覆盖原有的value

field 不能重复,但是 field 对应的 value 可以重复

field重复的话,数据就会进行覆盖

HSETNX key field value: HSET的安全版本,只有当field对应的key不存在时,才能设置成功。

该方法保证不会发生覆盖。

HGET key field: 获取Hash对象中指定key对应的value。

关于命令中的参数的说明,其中key相当于是hash对象的名字,而field才是该hash对象中的key。

HMGET key field [field...]: HGET的加强版,可同时获取多个key(指的是field)对应的value。

hget 就不行,不能获取多个field的value

HGETALL key: 获取Hash对象中所有key-value对。

这个就是通过key获取value了,而不是通过field获取value

HDEL key field [field ...]: 删除Hash对象中一个或多个key-value对。此处的field参数其实代表Hash对象中的key,后面的field参数皆如此。

HEXISTS key field: 判断Hash对象指定的key是否存在。

HINCRBY key field increment: 为Hash对象指定的key增加increment。

它也要要求key指定的hash对象的field所对应value必须能转换成数值。

HINCRBYFLOAT key field increment: HINCRBY的浮点数版本,支持小数。并会返回增加后的值

HKEYS key: 获取Hash对象中所有key。

HLEN key: 获取Hash对象中key-value对的数量。

HSTRLEN key field: 获取Hash对象指定key对应value的字符串长度。

HVALS key: 获取Hash对象所有的value。

HSCAN key cursor [MATCH pattern] [COUNT count]: 遍历Hash对象。此处的count不起作用。

相关推荐
悟能不能悟1 小时前
redis的红锁
数据库·redis·缓存
qq_5470261796 小时前
SpringBoot+Redis实现电商秒杀方案
spring boot·redis·后端
野犬寒鸦10 小时前
从零起步学习Redis || 第十一章:主从切换时的哨兵机制如何实现及项目实战
java·服务器·数据库·redis·后端·缓存
problc11 小时前
PostgreSQL + Redis + Elasticsearch 实时同步方案实践:从触发器到高性能搜索
redis·elasticsearch·postgresql
yinke小琪12 小时前
从秒杀系统崩溃到支撑千万流量:我的Redis分布式锁踩坑实录
java·redis·后端
会跑的葫芦怪12 小时前
Go语言操作Redis
开发语言·redis·golang
阿湯哥15 小时前
Redis数据库隔离业务缓存对查询性能的影响分析
数据库·redis·缓存
麦兜*15 小时前
Redis 7.2 新特性实战:Client-Side Caching(客户端缓存)如何大幅降低延迟?
数据库·spring boot·redis·spring·spring cloud·缓存·tomcat
he___H16 小时前
尚庭公寓中Redis的使用
数据库·redis·缓存·尚庭公寓
Logintern0918 小时前
【学习篇】Redis 分布式锁
redis·分布式·学习