Redis 笔记(05)— hash 类型(设置获取单个hash值、判断hash键是否存在、设置获取多个hash值、获取所有hash的键、获取所有hash的值、删除hash指定键)
Redis
的字典是无序字典。Redis
的字典的值只能是字符串,当 hash
移除了最后一个元素之后,该数据结构自动被删除,内存被回收。
hash
结构也可以用来存储用户信息,不同于字符串一次性需要全部序列化整个对象,hash
可以对用户结构中的每个字段单独存储。这样当我们需要获取用户信息时可以进行部分获取。而以整个字符串的形式去保存用户信息的话就只能一次性全部读取,这样就会比较浪费网络流量。
hash
也有缺点,hash
结构的存储消耗要高于单个字符串,到底该使用 hash
还是字符串,需要根据实际情况再三权衡。
1. hash 类型相关命令
命令 | 说明 |
---|---|
hset key field value | 设置hash里面一个字段的值 |
hget key field | 获取hash中field的值 |
hexists key field | 判断field是否存在hash中 |
hgetall key | 从hash中读取全部的域和值 |
hkeys key | 获取hash 中所有field |
hvals key | 获取hash的所有值 |
hlen key | 获取hash中所有字段的数量 |
hdel key field[field…] | 删除一个或多个hash的field |
hmget key field[field…] | 获取hash里面指定字段的值 |
hmset key field[field…] | 设置hash字段值 |
hsetnx key field value | 设置hash的一个字段,只有这个字段不存在是有效 |
hstrlen key field | 获取hash里面指定field的长度(Redis 版本>= 3.2.0) |
hscan key cursor | 迭代hash里面的元素 |
hincrby key field increment | 将hash中指定域的值增加给定的值 |
hincrbyfloat key field increment | 将hash中指定域的值增加给定的浮点数 |
2. 使用示例
127.0.0.1:6379> hset student name "jack"
(integer) 1
127.0.0.1:6379> hget student name
"jack"
127.0.0.1:6379> hexists student name
(integer) 1
127.0.0.1:6379> hexists student gender
(integer) 0
127.0.0.1:6379> hset student gender "male"
(integer) 1
127.0.0.1:6379> hgetall student
1) "name"
2) "jack"
3) "gender"
4) "male"
127.0.0.1:6379> hkeys student
1) "name"
2) "gender"
127.0.0.1:6379> hvalues student
(error) ERR unknown command 'hvalues'
127.0.0.1:6379> hvals student
1) "jack"
2) "male"
127.0.0.1:6379> hlen student
(integer) 2
127.0.0.1:6379> hmget student name gender
1) "jack"
2) "male"
127.0.0.1:6379> hmset student grade 90 country "USA"
OK
127.0.0.1:6379> hmget student name grade gender country
1) "jack"
2) "90"
3) "male"
4) "USA"
127.0.0.1:6379> hdel student country
(integer) 1
127.0.0.1:6379> hgetall student
1) "name"
2) "jack"
3) "gender"
4) "male"
5) "grade"
6) "90"
127.0.0.1:6379>
127.0.0.1:6379> hmset student grade 90 country "USA"
OK
127.0.0.1:6379> hgetall
(error) ERR wrong number of arguments for 'hgetall' command
127.0.0.1:6379> hgetall student
1) "grade"
2) "90"
3) "country"
4) "USA"
127.0.0.1:6379> hstrlen student grade
(integer) 2
127.0.0.1:6379> hstrlen student country
(integer) 3
127.0.0.1:6379>
127.0.0.1:6379> hgetall student
1) "grade"
2) "90"
3) "country"
4) "USA"
127.0.0.1:6379> hincrby student grade 5
(integer) 95
127.0.0.1:6379> hgetall student
1) "grade"
2) "95"
3) "country"
4) "USA"
127.0.0.1:6379>
Redis 笔记(05)— hash 类型(设置获取单个hash值、判断hash键是否存在、设置获取多个hash值、获取所有hash的键、获取所有hash的值、删除hash指定键)相关推荐
- php 数组移除指定健,php删除数组指定键的方法
php删除数组指定键的方法:首先创建一个PHP代码示例文件:然后定义一个"array_remove"方法:最后利用"array_key_exists".&quo ...
- 笔记05 局部类型
一:局部类型 1. 局部类型 C# 2.0 引入了局部类型的概念.局部类型允许我们将一个类.结构或接口分成几个部分,分别实现在几个不同的.cs文件中. 局部类型适用于以下情况: (1) 类型特别大,不 ...
- Redis 笔记(04)— list类型(作为消息队列使用、在列表头部添加元素、尾部删除元素、查看列表长度、遍历指定列表区间元素、获取指定区间列表元素、阻塞式获取列表元素)
Redis 的列表是链表而不是数组.这意味着 list 的插入和删除操作非常快,时间复杂度为 O(1),但是索引定位很慢,时间复杂度为 O(n). 当列表弹出了最后一个元素之后,该数据结构自动被删除, ...
- Redis工作笔记-Hash类型
目录 概述 操作 概述 Redis中的Hash类型看成具有String Key和String Value的map容器.所以该类型非常适合于存储键值对象的信息.如Username.Password和Ag ...
- Redis 笔记(07)— sorted set 类型(添加、删除有序集合元素、获取分数范围内成员、按score排序、返回集合元素个数)
zset 可能是 Redis 提供的最为特色的数据结构,一方面它是一个 set,保证了内部 value 的唯一性,另一方面它可以给每个 value 赋予一个 score,代表这个 value 的排序权 ...
- 获取url中的参数方法,避免#的干扰,删除url指定参数(vue hash模式 有#删除指定参数问题)
function urlParse() {let url = window.location.search;let obj = {};let reg = /[?&][^?&]+=[^? ...
- zset获取指定score_7、Redis中对ZSet类型的操作命令
写在前面的话:读书破万卷,编码如有神 -------------------------------------------------------------------- ------------ ...
- 02_NoSQL数据库之Redis数据库:string类型和hash类型
Strings类型及操作 String是最简单的类型,一个key对应一个Value,String类型是二进制安全的.Redis的String可以包含任何数据,比如jpg图片或者序列化的对象. S ...
- Redis学习第三课:Redis Hash类型及操作
Redis hash是一个string类型的field和value的映射表.它的添加.删除操作都是O(1)(平均).hash特别适用于存储对象.相较于对象的每个字段存在单个string类型.将一个对象 ...
最新文章
- CCSP-防火墙学习笔记第6章
- linux 多进程 多线程的选择
- Yii调用参数配置文件params
- 基于 DataLakeAnalytics 做跨地域的数据分析
- acrgis api for javaScript需要对Dojo了解多少?
- 简述python是怎么处理异常的-Python异常处理知识点总结
- php辅助框架,【PHP开发框架】Laravel框架中辅助函数:optional ()函数的介绍
- cgroups(7)— Linux中文手册页
- 嵌入式专业名词整理(以后会不断完善)
- 若依可以商用吗_商用自动炒菜机Qamp;A,你想知道的都在这里!
- 数学建模十大经典算法和常用算法
- Java生成数据字典word文件
- 清华钱颖一:什么造就了硅谷奇迹?这7个因素不可忽视
- 纯css实现3D立体六面体照片墙
- LED软模组圆弧屏、弧形屏、柔性软屏、创意LED显示屏案例
- ie11不兼容window.createPopup的问题解决
- iOS APP调取短信 发送消息给其他人
- html5游戏防止作弊,html5 canvas模拟的小球躲避小游戏
- java中常用的工具类
- 易优cms uiarclist 文档列表可视化标签
热门文章
- 2022-2028年中国康养旅游行业市场竞争力分析及发展策略分析报告
- 2021-2027年中国智能家居设备行业市场前瞻与投资策略规划报告
- Docker入门六部曲——基本引导
- 消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法
- 数据结构(02)— 时间复杂度与空间复杂度转换
- 3分钟4 步快速带你在win10电脑装上openCV3.4 (python使用)
- python中的新式类与旧式类的一些基于descriptor的概念(上)
- How does SGD weight_decay work?
- MindInsight训练可视整体设计介绍
- YOLOv5目标检测源码重磅发布了!