文档章节

Redis[三] @Hash 哈希

peachyy
 peachyy
发布于 2017/09/07 12:54
字数 530
阅读 2
收藏 0
点赞 0
评论 0

Redis的哈希值是字符串字段和字符串值之间的映射,所以他们是表示对象的完美数据类型

在Redis中的哈希值,可存储超过400十亿键值对。

redis 提供了2套操纵 一种是批量 一种是非批量

假设需要存储一个用户信息

批量操作

定义一个key为user1的hash 包含属性 name=xstao、age=22、sex=1、password=123 并获取user1中name的属性值


      
redis 127.0.0.1:6379[1]> hmset user1 name xstao age 22 sex 1 password 123
OK
redis 127.0.0.1:6379[1]> hmget user1 name
1) "xstao"

获取user1的全部key 、 value、全部的key value


      
redis 127.0.0.1:6379[1]> hgetall user1
1) "name"
2) "xstao"
3) "age"
4) "22"
5) "sex"
6) "1"
7) "password"
8) "123"
redis 127.0.0.1:6379[1]> hkeys user1
1) "name"
2) "age"
3) "sex"
4) "password"
redis 127.0.0.1:6379[1]> hvals user1
1) "xstao"
2) "22"
3) "1"
4) "123"

获取user1这个hash的字段数量


      
redis 127.0.0.1:6379[1]> hlen user1
(integer) 4

为hash user1添加一个字段 并查看添加后的数据结构


      
redis 127.0.0.1:6379[1]> hmset user1 ext1 test
OK
redis 127.0.0.1:6379[1]> hgetall user1
1) "name"
2) "xstao"
3) "age"
4) "22"
5) "sex"
6) "1"
7) "password"
8) "123"
9) "ext1"
10) "test"

更新key为user1 sex的值为0 并返回赋值成功后的新值


      
redis 127.0.0.1:6379[1]> hset user1 sex 0
(integer) 0

非批量

从命令格式上来看批量都加了m 而非批量都没有 比如批量hmset 非批量 hset

定义一个哈希表user2 第一次执行成功 ,第二次执行批量添加失败了。因为hset仅支持单个添加


      
redis 127.0.0.1:6379[1]> hset user2 name abc
(integer) 1
redis 127.0.0.1:6379[1]> hset user3 name abc age 2
(error) ERR wrong number of arguments for 'hset' command
redis 127.0.0.1:6379[1]>


其他一些常用命令命令


      
//判断user1中name是否存在 返回1表示已存在 返回0标识没有这个name字段key
redis 127.0.0.1:6379[1]> hexists user1 name
(integer) 1
//针对user1 中age(年龄)字段自增2 返回自增后的值
redis 127.0.0.1:6379[1]> hincrby user1 age 2
(integer) 24
//针对user1 中age(年龄)字段浮点数自增2.5 返回自增后的值
redis 127.0.0.1:6379[1]> hincrbyfloat user1 age 2.5
"28.5"


笑笑笑技术圈


      

本文转载自:http://blog.csdn.net/tao1992/article/details/77647837

共有 人打赏支持
peachyy

peachyy

粉丝 3
博文 11
码字总数 2718
作品 0
江北
产品经理
Redis数据结构之字典

一 应用场景 字典在Redis中的应用相当广泛,比如Redis的数据库就是使用字典作为底层实现的,对数据库的增删该查也是构建在对字典的操作之上。 Redis的字典使用哈希表作为底层实现,一个哈希表...

挽袖清风
01/26
3
0
redis的hash表介绍

redis的hash表介绍 哈希表(Hash) HSET HSETNX HMSET HGET HMGET HGETALL HDEL HLEN HEXISTS HINCRBY HKEYS HVALS 哈希表(Hash) HSET HSET key field value 将哈希表key中的域field的值设为v......

writeademo
2016/09/04
7
0
Redis源码分析(dict)

源码版本: 源码位置: dict.h:等数据结构定义。 dict.c:创建、插入、查找等功能实现。 一、dict 简介 (dictionary 字典),通常的存储结构是形式的,通过对key求Hash值来确定Value的位置,...

yangbodong22011
2017/11/07
0
0
CentOS 7下安装redis及自启动配置

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。和Memcached类似,它支持存储的value类型相对更多,包括string(字符...

leshami
06/26
0
0
Redisbook学习笔记(3)数据类型之哈希表

REDIS_HASH (哈希表) 是HSET 、HLEN 等命令的操作对象, 它使用 REDISENCODINGZIPLIST 和REDISENCODINGHT 两种编码方式: 字典编码的哈希表 当哈希表使用字典编码时,程序将哈希表的键(k...

shayang88
2014/02/20
0
0
Redis从入门到放弃 之 常用命令和基本数据类型操作

一、Redis通用命令 二、基本数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合) 1、string字符串 2、hash(哈希) ...

李格尔楞
2017/11/01
0
0
Jedis 与 ShardedJedis 设计

Jedis设计 Jedis作为推荐的java语言redis客户端,其抽象封装为三部分: 对象池设计:Pool,JedisPool,GenericObjectPool,BasePoolableObjectFactory,JedisFactory 面向用户的redis操作封装...

tantexian
2016/06/07
49
0
Redis集群存/取数据原理(理论)

redis集群数据存储原理: 在redis cluster中,如果想要存入一个key-value, 首先会通过CRC16(hash算法)将key计算出一个值, 然后用计算出的值和16384取余,余数会对应上0-16383之间的哈希槽...

张德帅ya
05/22
0
0
redis——哈希(hash)

Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。 Redis 中每个 hash 可以存储 2^32 - 1 键值对(40多亿)。 hash命令 1、HDEL key field1 [field2....] 删除...

Allenyan
05/11
0
0
Redis中hash的理解

Hash 常用命令: 序号 命令及描述 1 HDEL key field2 [field2] 删除一个或多个哈希表字段 2 HEXISTS key field 查看哈希表 key 中,指定的字段是否存在。 3 HGET key field 获取存储在哈希表...

曾劲松
2016/11/01
202
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

idea tomcat 远程调试

tomcat 配置 编辑文件${tomcat_home}/bin/catalina.sh,在文件开头添加如下代码。    CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7829" Idea端配......

qwfys
今天
1
0
遍历目录下的文件每250M打包一个文件

#!/usr/bin/env python # -*- utf-8 -*- # @Time : 2018/7/20 0020 下午 10:16 # @Author : 陈元 # @Email : abcmeabc@163.com # @file : tarFile.py import os import tarfile import thr......

寻爱的小草
今天
1
0
expect同步文件&expect指定host和要同步的文件&构建文件分发系统&批量远程执行命令

20.31 expect脚本同步文件 expect通过与rsync结合,可以在一台机器上把文件自动同步到多台机器上 编写脚本 [root@linux-5 ~]# cd /usr/local/sbin[root@linux-5 sbin]# vim 4.expect#!/...

影夜Linux
今天
1
0
SpringBoot | 第九章:Mybatis-plus的集成和使用

前言 本章节开始介绍数据访问方面的相关知识点。对于后端开发者而言,和数据库打交道是每天都在进行的,所以一个好用的ORM框架是很有必要的。目前,绝大部分公司都选择MyBatis框架作为底层数...

oKong
今天
13
0
win10 上安装解压版mysql

1.效果 2. 下载MySQL 压缩版 下载地址: https://downloads.mysql.com/archives/community/ 3. 配置 3.1 将下载的文件解压到合适的位置 我最终将myql文件 放在:D:\develop\mysql 最终放的位...

Lucky_Me
今天
2
0
linux服务器修改mtu值优化cpu

一、jumbo frames 相关 1、什么是jumbo frames Jumbo frames 是指比标准Ethernet Frames长的frame,即比1518/1522 bit大的frames,Jumbo frame的大小是每个设备厂商规定的,不属于IEEE标准;...

问题终结者
今天
2
0
expect脚本同步文件expect脚本指定host和要同步的文件 构建文件分发系统批量远程执行命令

expect脚本同步文件 在一台机器上把文件同步到多台机器上 自动同步文件 vim 4.expect [root@yong-01 sbin]# vim 4.expect#!/usr/bin/expectset passwd "20655739"spawn rsync -av ro...

lyy549745
今天
1
0
36.rsync下 日志 screen

10.32/10.33 rsync通过服务同步 10.34 linux系统日志 10.35 screen工具 10.32/10.33 rsync通过服务同步: rsync还可以通过服务的方式同步。那需要开启一个服务,他的架构是cs架构,客户端服务...

王鑫linux
今天
1
0
matplotlib 保存图片时的参数

简单绘图 import matplotlib.pyplot as pltplt.plot(range(10)) 保存为csv格式,放大后依然很清晰 plt.savefig('t1.svg') 普通保存放大后会有点模糊文件大小20多k plt.savefig('t5.p...

阿豪boy
今天
3
0
java 8 复合Lambda 表达式

comparator 比较器复合 //排序Comparator.comparing(Apple::getWeight);List<Apple> list = Stream.of(new Apple(1, "a"), new Apple(2, "b"), new Apple(3, "c")) .collect(......

Canaan_
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部