Redis学习笔记--Hash(五)
Redis的数据是通过key-value的方式存储的,对于value的数据类型有字符串、Hash、list、set、sortedSet
在redis命令语句中,语句是忽略大小写的,但是key是不可以忽略大小写的。
使用string遇到的问题。
假设:我们使用一个类对象以json的形式存储在Redis中,类中有很多属性,我们有时候只是想修改其中一个数据的时候,操作就要回将数据从string中取出来,然后修改,这样会影响响应的速度。可以使用Hash来解决这个问题。
Hash的简单的介绍
hash叫做散列类型,它提供了字段和值的映射,字段只能是字符串类型,不支持散转类型和集合类型等其它数据类型。
1.Hash类型
1.1命令
1.1.1赋值
HSET命令不区分插入和更新操作,当执行插入操作时HSET命令返回1,当执行更新操作时返回0。
语法:HSET key field value (一次插入一个值)
127.0.0.1:6379> hset user username zhangsan
(integer) 1
一次设置多个字段
语法:HMSET key field value [field value]
127.0.0.1:> hmset user age username lisi
OK
1.1.2取值
一次取一个值
语法:HGET key field
127.0.0.1:> hget user username
"zhangsan“
一次获取多个值
语法:HMGET key field [field ……]
127.0.0.1:> hmget user age username
) ""
) "lisi"
获取所以的字段
HGETALL key
127.0.0.1:> hgetall user
) "age"
) ""
) "username"
) "lisi"
1.1.3删除字段
可以一次删除一个或者多个字段,返回值是被删除的字段个数
语法:HDEL key field [field……]
127.0.0.1:> hdel user age
(integer)
127.0.0.1:> hdel user age name
(integer)
127.0.0.1:> hdel user age username
(integer)
1.1.4增加数字
语法:HINCRBY key field increnum
127.0.0.1:> hincrby user age 将用户的年龄加2
(integer)
127.0.0.1:> hget user age 获取用户的年龄
"22“
1.1.5判断字段是否存在
语法:HEXISTS key field
127.0.0.1:> hexists user age 查看user中是否有age字段
(integer)
127.0.0.1:> hexists user name 查看user中是否有name字段
(integer)
1.1.6只获取字段或者字段值
语法:HKEYS key
HVALS key
127.0.0.1:> hmset user age name lisi
OK
127.0.0.1:> hkeys user
) "age"
) "name"
127.0.0.1:> hvals user
) ""
) "lisi"
1.1.7获取字段数量
语法:HLEN key
127.0.0.1:> hlen user
(integer)
2.1应用
存储商品信息 ,比如商品的id,商品名称,商品……
2.1.1存储商品信息
192.168.101.3:> HMSET items: id name apple price 999.9
OK
2.1.2商品信息获取
192.168.101.3:> HGET items: id
""
192.168.101.3:> HGETALL items:
) "id"
) ""
) "name"
) "apple"
) "price"
) "999.9"
Redis学习笔记--Hash(五)的更多相关文章
- Redis学习笔记(五)——数据结构之哈希(Hash)
一.介绍 Redis hash是一个string类型的field和value的映射表,hash特别设于用于存储对象. Redis中每个hash可以存储232 - 1 键值对(40多亿). 基本命令: ...
- Redis学习笔记(五) 基本命令:Hash操作
原文链接:http://doc.redisfans.com/hash/index.html 学习前先明确一下概念,这里我们把Redis的key称作key(键),把数据结构hash中的key称为fiel ...
- Redis学习笔记(五)- 数据类型之set类型
Redis 的set是string类型的无序集合.set元素最大可以包含(2的32次方-1)个元素.set的是通过hash table实现的,所以添加,删除,查找的复杂度都是O(1).hash tab ...
- 【转】Redis学习笔记(五)如何用Redis实现分布式锁(2)—— 集群版
原文地址:http://bridgeforyou.cn/2018/09/02/Redis-Dsitributed-Lock-2/ 单机版实现的局限性 在上一篇文章中,我们讨论了Redis分布式锁的实现 ...
- Redis学习笔记(五)散列进阶
HEXISTS key_name key(检查键key是否存在) HKEYS key_name(获得散列的所有键) HVALS key_name(获得散列的所有值) HINCRBY key_name ...
- Redis 学习笔记(五)高可用之主从模式
上一节提到了 Redis 的持久性,也就是在服务器实例宕机或故障时,拥有再恢复的能力.但是在这个服务器实例宕机恢复期间,是无法接受新的数据请求.对于整体服务而言这是无法容忍的,因此我们可以使用多个服务 ...
- Redis学习笔记(二) Redis 数据类型
Redis 支持五种数据类型:string(字符串).list(列表).hash(哈希).set(集合)和 zset(有序集合),接下来我们讲解分别讲解一下这五种类型的的使用. String(字符串) ...
- Redis学习笔记(二)Redis支持的5种数据类型的总结之String和Hash
引言 在Redis学习笔记(一)中我们已经会安装并且简单使用Redis了,接下来我们一起来学习下Redis支持的5大数据类型. 简介 Redis是REmote DIctionary Server(远程 ...
- redis 学习笔记(6)-cluster集群搭建
上次写redis的学习笔记还是2014年,一转眼已经快2年过去了,在段时间里,redis最大的变化之一就是cluster功能的正式发布,以前要搞redis集群,得借助一致性hash来自己搞shardi ...
随机推荐
- css选择器和优先级总结
本文转自http://www.cnblogs.com/zxjwlh/p/6213239.html CSS三大特性—— 继承. 优先级和层叠. 继承:即子类元素继承父类的样式; 优先级:是指不同类别样式 ...
- finally不管有没有错都会运行 finally 块用于清除 try 块中分配的任何资源,以及运行任何即使在发生异常时也必须执行的代码
finally 块用于清除 try 块中分配的任何资源,以及运行任何即使在发生异常时也必须执行的代码
- vue2细节变化的用法
1.v-el和v-ref合并为一个属性:ref 原来:v-el:my-element 现在: ref="myElement", v-ref:my-component 变成了这样: ...
- vue脚手架3.0的搭建
一.安装node 打开cmd输入node -v查看是否安装成功 显示node版本号表示安装成功,显示‘node’不是内部或外部命令表示未安装node.node安装地址:http://nodejs.cn ...
- Java 学习(15):Java 数据结构
Java 数据结构 Java工具包提供了强大的数据结构.在Java中的数据结构主要包括以下几种接口和类: 枚举(Enumeration) 位集合(BitSet) 向量(Vector) 栈(Stack) ...
- ELK+KAFKA安装部署指南
一.ELK 背景 通常,日志被分散的储存不同的设备上.如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志.这样是不是感觉很繁琐和效率低下.当务之急我们使用集中化的日志管理,例如: ...
- 利用ArcGIS水文分析工具提取河网
转自原文 利用ArcGIS水文分析工具提取河网(转) DEM包含有多种信息,ArcToolBox提供了利用DEM提取河网的方法,但是操作比较烦琐(帮助可参看Hydrologic analysis sa ...
- 论Node在构建超媒体API中的作用
论Node在构建超媒体API中的作用 作者:chszs,转载需注明. 博客主页:http://blog.csdn.net/chszs 超媒体即Hypermedia,是一种採用非线性网状结构对块状多媒体 ...
- ubuntu下sudo命令不再输入密码
ubuntu下普通用户是没有root权限,很多命令在使用时都需要使用命令sudo 'cmd',但系统需要user验证自己,即需要输入普通用户的密码.但普通用户是否有执行该cmd的权限,需要到系统文件/ ...
- HDU 1197 Specialized Four-Digit Numbers
Specialized Four-Digit Numbers Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K ...