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 ...
随机推荐
- js---11闭包
//匿名立即调用函数 (function(){//把a,b,f全部隐藏在函数中,外部访问不到, var a = 5; var b = 6; function f(){ alert(a); } wind ...
- 32.idea导入maven项目 无法加载依赖包
maven Project重新导入即可
- 8.ZOrder
T3LayerZorder.h #pragma once #include "cocos2d.h" USING_NS_CC; class T3LayerZorder:public ...
- Day2上午解题报告
预计分数:100+0+60=160 实际分数:100+0+60=160 mmpT1数据错了... T1遭遇 题目描述 你是能看到第一题的 friends呢. —— hja ?座楼房,立于城中 . 第? ...
- kafka删除主题
hdp集群默认不能删除kafka主题,如果要删除,需要在ambari上进行配置,将enable delete设置为true.
- 【2017 Multi-University Training Contest - Team 2】Maximum Sequence
[Link]:http://acm.hdu.edu.cn/showproblem.php?pid=6047 [Description] 给你一个数列a和一个数列b; 只告诉你a的前n项各是什么; 然后 ...
- NYOJ 927 The partial sum problem 【DFS】+【剪枝】
The partial sum problem 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描写叙述 One day,Tom's girlfriend give him a ...
- Docker 搭建java+tomcat
1. 准备java和tomcat的软件包 jdk-7u79-linux-x64.tar.gz apache-tomcat-7.0.57.tar.gz 2. 编辑Dockerfile 文件 vim Do ...
- 一个奇怪的Java集合问题
int size = list.size(); Integer existIndex = -1; for (int index = 0; index < size; index++) { Pho ...
- SpringMVC 传递相同名称的参数的最佳方法
华为云4核8G,高性能云服务器,免费试用 >>> SpringMVC 多个对象的相同字段参数传递解决方案,在SpringMVC中,有时需要传递多个对象(除了Model和web元素 ...