【redis 学习系列】API的理解与使用(二)
3、哈希
几乎所有的语言都支持了哈希(hash)类型。在Redis中,哈希类型是指键值本身又是一个键值对结构,形如:value = {{field, value} ... {field, value}},Redis键值对和哈希类型的关系可以入下图所示:
哈希类型中的映射关系叫做field-value,注意这里的value指的是field对应的值,而不是键对应的值。
3.1命令
(1)设置值
hset key field value
如果设置成功会返回1,反之则返回0。此外Redis提供了hsetnx命令的作用同setnx,只不过作用域由键变为了field。
(2)获取值
hget key field
如果获取的键或者field不存在,则返回nil
(3)删除field
hdel key field [field ...]
hdel会删除一个或者多个field,返回结果为成功删除field的个数。
(4)计算filed的个数
hlen key
(5)批量设置或获取filed-value
hmget key field [field ...]
hmset key field value [field value ...]
hmset和hmget分别是批量设置和获取field-value,hmset需要的参数是key和多对field-value,hmget需要的参数是key和多个field。
(6)判断filed是否存在
hexists key field
例如user:3包含name域,所以返回为1,不包含时,返回为0。
(7)获取所有filed
hkeys key
hkeys命令应该叫hfield更为恰当,它返回的是执行哈希键所有的field。
(8)获取所有value
hvals key
(9)获取所有的filed-value
hgetall key
如下的操作会获取user:3的所有field-value。
在使用hgetall命令时,如果哈希元素个数比较多时,会存在阻塞Redis的可能,如果开发人员只是为了获取部分field,可以使用hmget,如果一定要获得全部的field-value,可以使用命令hscan,该命令会渐进式遍历哈希类型。
(10)hincrby hincrbyfloat
hincrby key field
hincrbyfloat key field
命令hincrby和hincrbyfloat就像incrby和incrbyfloat一样,只不过它们的作用域为field。
(11)计算value的字符串长度(Redis 3.2以上版本)
hstrlen key field
例如hget user:3 name的value是kevin,那么hstrlen的返回值为5。
3.2 内部编码
哈希类型的内部编码有2种:
3.3 使用场景
【redis 学习系列】API的理解与使用(二)的更多相关文章
- 分布式缓存技术redis学习系列(五)——redis实战(redis与spring整合,分布式锁实现)
本文是redis学习系列的第五篇,点击下面链接可回看系列文章 <redis简介以及linux上的安装> <详细讲解redis数据结构(内存模型)以及常用命令> <redi ...
- 分布式缓存技术redis学习系列(四)——redis高级应用(集群搭建、集群分区原理、集群操作)
本文是redis学习系列的第四篇,前面我们学习了redis的数据结构和一些高级特性,点击下面链接可回看 <详细讲解redis数据结构(内存模型)以及常用命令> <redis高级应用( ...
- 分布式缓存技术redis学习系列
分布式缓存技术redis学习系列(一)--redis简介以及linux上的安装以及操作redis问题整理 分布式缓存技术redis学习系列(二)--详细讲解redis数据结构(内存模型)以及常用命令 ...
- redis学习系列
redis学习系列 基本看完 最近在看redis的代码,简单记录下自己认为重要的点,自己写比较费时间的,我会把查到的资料贴出来方便查看 淘宝的redis内存分析 http://www.searchtb ...
- C# Redis学习系列三:Redis配置主从
Redis配置主从 主IP :端口 192.168.0.103 6666 从IP:端口 192.168.0.108 3333 配置从库 (1)安装服务: redis-server ...
- Python操作redis学习系列之(集合)set,redis set详解 (六)
# -*- coding: utf-8 -*- import redis r = redis.Redis(host=") 1. Sadd 命令将一个或多个成员元素加入到集合中,已经存在于集合 ...
- C# Redis学习系列二:Redis基本设置
上一篇:C# Redis学习系列一:Redis的认识.下载.安装.使用 一.redis 设置密码 使用下载好的 redis-cli.exe 指令: 1.设置密码: config set require ...
- Redis学习系列一Linux环境搭建
1.简介 Redis是互联网技术架构中在存储系统中用的最广泛的中间件,是中高级后端工程师技术面试中面试官最喜欢问的工程技能之一.所以Redis是.Net技术开发必须掌握的技能之一.所以通过这个系列的随 ...
- 【redis 学习系列】API的理解与使用(一)
Redis提供了5种数据结构,以下介绍一些预备知识以及Redis的5种数据结构 1.预备知识 1.1 全局命令 Redis的5种数据结构,它们是键值对中的值,对于键来说有一些通用的命令. (1)查看所 ...
随机推荐
- jar包和war包的介绍和区别
jar包和war包的介绍和区别 Java程序员的日常 关注 做Java开发,jar包和war包接触的挺多的,有必要对它们做一个深入的了解,特总结整理如下: 1.jar包的介绍 JAR(Java Arc ...
- systemverilog.vim
" Vim syntax file " Language: SystemVerilog " Maintainer: Stephen Hobbs <stephenh@ ...
- KeyPress和KeyDown/KeyUp
(1) KeyPress 和KeyDown .KeyUp之间的区别: 1).KeyPress主要用来捕获数字(注意:包括Shift+数字的符号).字母(注意:包括大小写).小键盘等除了F1-12 ...
- 所有设计复杂的ORM都是浮云
很久没有写文章了. 一直很忙,不是很有时间整理. 今天主要是来吐槽下那些设计很复杂的ORM的. 项目做的越多,越觉得ORM这个东西设计的太复杂实在是没什么意义. 比较推崇Dapper这样比较简单,效率 ...
- 三、CSS样式——链接
CSS链接的四种状态: a:link ——普通的.未被访问的链接 a:visited ——用户已访问的链接 a:hover ——鼠标指针位于链接的上方 a:active ——链接背点击的时刻 常见的链 ...
- rest_framework目录
一 REST API规范 二 rest framework框架的基本使用
- Linux 下的 Docker 安装与使用
一.安装与配置 1.安装依赖包 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 2.设置阿里云镜像源 sudo yum ...
- H5-meta标签使用大全
meta标签有下面的作用:搜索引擎优化(提高搜索性能),控制页面功能化. meta标签的组成:meta标签共有两个属性,它们分别是http-equiv属性和name属性. 1.name属性 name属 ...
- iOS下 UILabel 如何自动换行
背景: 相信很多朋友都遇到过,文本的内容长度不一,需要根据内容的多少来自动换行处理. 场景: 很多APP中评论,有的评论长,有的评论短,有的一行,有的多行. 下面以评论的实现为例来说说具体如何实现 ...
- Vim常用配置
mkdir -p ~/.vim/bundle/Vundle.vim git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/V ...