Redis常用命令入门2:散列类型
散列命令
散列类型的键值其实也是一种字典解耦,其存储了字段和字段值的映射,但字段值只能是字符串,不支持其他数据类型,所以说散列类型不能嵌套其他的数据类型。一个散列类型的键可以包含最多2的32次方-1个字段。
另外提前说一声,除了散列类型,其他的数据类型同样不支持数据类型嵌套。
1、基本命令
例如现在要存储ID为1的文章,分别有title、author、time、content
则键为post:1,字段分别为title、author、time、content,值分别为“the first post”、“me”、“2014-03-04”、“This is my first post.”,存储如下
redis 127.0.0.1:> hmset post: title "the first post" author "JoJo" time // content "this is my first post"
OK
这里使用的是hmset命令,具体散列的基本赋值命令如下:
hset key field value #例如hset post:2 title “second post”
hget key field #例如hget post:2 title,获取id为2的post的title值
hmset key field value [field value ...] #这个同上,批量存值
hmget key field [field ...] #批量取值,取得列表
例:
redis 127.0.0.1:> hmget post: time author
) "2016/08/25"
) "JoJo"
hgetall key #取得key所对应的所有键值列表,这里给出个例子
redis 127.0.0.1:> hgetall post:
) "title"
) "the first post"
) "author"
) "JoJo"
) "time"
) "2016/08/25"
) "content"
) "this is my first post"
2、判断是否存在
hexists key field
如果存在返回1,否则返回0(如果键不存在也返回0)。
3、当字段不存在时赋值
hsetnx key field value
这个和hset的区别就是如果字段存在,这个命令将不执行任何操作,但是这里有一个区别就是Redis提供的这些命令都是原子操作,不会产生数据不一致问题。
例:
redis 127.0.0.1:> hexists post: time
(integer) 1 //判断是存在time字段的
redis 127.0.0.1:> hsetnx post: time //
(integer) 0 //不存在的话,设置time,存在的话返回0,值不变,原始值
redis 127.0.0.1:> hget post: time
"2016/08/25"
redis 127.0.0.1:> hsetnx post: age
(integer) 1 //不存在age字段,返回1,并设置age字段
redis 127.0.0.1:> hget post: age
""
4、增加数字
hincrby key field number
这里就和incry命令类似了。
例:
redis 127.0.0.1:> hincrby post: age
(integer)
5、删除字段
hdel key field [field ...]
删除字段,一个或多个,返回值是被删除字段的个数。
6、其他命令
hkeys key #获取字段名
hvals key #获取字段名
示例如下:
redis 127.0.0.1:> hkeys post:
) "title"
) "author"
) "time"
) "content"
) "age"
redis 127.0.0.1:> hvals post:
) "the first post"
) "JoJo"
) "2016/08/25"
) "this is my first post"
) ""
最后还有一个就是获取字段数量的命令:
hlen key
返回字段的数量
redis 127.0.0.1:> hlen post:
(integer)
Redis常用命令入门2:散列类型的更多相关文章
- Redis常用命令入门1:字符串类型命令
Redis总共有五种数据类型,在学习的时候,一定要开一个redis-cli程序,边看边练,提高效率. 一.最简单的命令 1.获得符合规则的键名列表 keys * 这里的*号,是指列出所有的键,同时*号 ...
- Redis常用命令入门4:集合类型
集合类型 之前我们已经介绍过了最基本的字符串类型.散列类型.列表类型,下面我们一起学习一下集合类型. 集合类型也是体现redis一个比较高价值的一个类型了.因为Redis的集合类型,所以我们可以很容易 ...
- Redis常用命令入门3:列表类型
列表类型 列表类型也是一个我们很长要用到的一个类型.比如我们发博客,要用到博客列表.如果没有列表我们就只能遍历键来获取所有文章或一部分文章了,这个语法是keys,但是这个命令需要遍历数据库中的所有键, ...
- Redis核心原理与实践--散列类型与字典结构实现原理
Redis散列类型可以存储一组无序的键值对,它特别适用于存储一个对象数据. > HSET fruit name apple price 7.6 origin china 3 > HGET ...
- Redis常用命令入门5:有序集合类型
有序集合类型 上节我们一起学习了集合类型,感受到了redis的强大.现在我们接着学Redis的最后一个类型——有序集合类型. 有序集合类型,大家从名字上应该就可以知道,实际上就是在集合类型上加了个有序 ...
- Redis常用命令入门——列表类型(一级二级缓存技术)
获取列表片段 redis > LRANGE KEY_NAME START END lrange命令比较常用,返回从start到stop的所有元素的列表,start和stop都是从0开始. (1) ...
- Redis 常用命令学习二:字符串类型命令
1.赋值与取值命令 127.0.0.1:6379> set foo helloredis OK 127.0.0.1:6379> get foo "helloredis" ...
- Redis 常用命令学四:集合类型命令
1.增加和删除命令 127.0.0.1:6379> SADD st a (integer) 1 127.0.0.1:6379> SADD st r f g (integer) 3 127. ...
- Redis 常用命令学四:列表类型命令
1.在列表两端增加值的命令 127.0.0.1:6379> lpush 1 (error) ERR wrong number of arguments for 'lpush' command 1 ...
随机推荐
- 关于 K米 —— 的案例分析
第一部分 调研,评测 评测 下载并使用,描述最简单直观的个人第一次上手体验. 我觉得ktv遥控软件设计的很好,给我带来了很多方便,点歌也不用那么麻烦了跑到台子那里点,调各种音量灯光也是,所以第一次上手 ...
- 修改bootstrap modal模态框的宽度
原文链接:http://blog.csdn.net/wuhawang/article/details/52252912 修改模态框的宽度很简单,修改width属性就可以了 但是要注意的一点是,修改的不 ...
- webstorm2016.2 for mac 安装
文件来自斯蒂芬周: http://www.sdifenzhou.com/?p=6941&jdfwkey=jmnzy 附上详细安装步骤:
- 查看/关闭SElinux (原创帖,转载请注明出处)
查看SELinux状态: 1 /usr/sbin/sestatus -v | grep "SELinux status:" ##如果SELinux status参数为enabl ...
- 几个简单的css样式使用说明
假设我们的单标签是一个 div: 定义如下通用CSS: div{ position:relative; width:200px; height:60px; background:#ddd; } 法一: ...
- (转)sqlplus中文显示乱码的问题
sqlplus中文显示乱码的问题 2010-07-19 11:33:26 分类: LINUX 在windows下sqlplus完全正常,可是到linux下,sqlplus中文显示就出问题了,总是显示“ ...
- QLPreViewController的初步实用
前一阵项目需要添加一个文档文件的查看功能,于是就各种找资料,一开始想实用webView,然而webView有的格式不支持,而且占内存太大了.找着找着就找到QLPreViewController.用了一 ...
- [OC]UILabel 文字长的截断方式
Tip: 参考文档:http://blog.csdn.net/reylen/article/details/21012859 @property(nonatomic) NSLineBreakMode ...
- 前端中sprite.png的实现
通过background-position来控制X轴和Y轴,从而实现显示sprite.png中想要的ico或图案. 如下图所示:
- 转载分享----一线交付眼中的为何"项目总是迟迟无法交付”
当初博主在一线交付BOSS系统中承担过TC角色 交付的路途很艰辛,加班到10点多或1点多第二天8点上班,还有通宵的日子 还有无数个问题从开始到关闭的周期,各种催人,各种掐架拉会,各种被甲方嫌弃 看到这 ...