redis哈希操作
用户可以通过执行hset命令为哈希中的指定字段设置值;
127.0.0.1:6379> hset hash field value
根据给定的字段是否存在于散列中,hset命令的行为也会有所不同,如果给定字段不存在与散列中,那么这一次设置就是一次创建操作,命令将会在散列里面关联起给定的字段和值,然后返回1;如果给定的字段原本存在于散列里面,那么这次设置就是一次更新操作,命令会将用户给定的新值取覆盖掉原有的旧值,然后返回0
127.0.0.1:6379> hset ar titlr "hello world"
(integer) 1
127.0.0.1:6379> hset ar titlor "hello world"
(integer) 1
127.0.0.1:6379> hset ar cr "hello world"
(integer) 1
使用新值覆盖旧值
如果用户调用hset命令时给定的字段已经存在于散列当中,那么hset命令将会使用用户给定的新值去覆盖已有的旧值,并返回0表示是一次更新操作
127.0.0.1:6379> hset ar cr "paopaotang"
(integer) 0
127.0.0.1:6379> hset ar titlr "miaohuatang"
(integer) 0
hsetnx只在字段不存在的情况下为它设置值
127.0.0.1:6379> hsetnx hash field value
hsetnx命令在字段不存在并且成功为它设置值时返回1,在字段已经存在并导致操作失败执行返回0
127.0.0.1:6379> hsetnx ar cr "xiaowugui"
(integer) 0 失败
如果值不存在,命令会顺利执行
127.0.0.1:6379> hsetnx ar co "xiaowugui"
(integer) 1 成功执行
hget 获取字段的值
127.0.0.1:6379> hget hash field
获取 ar散列里co字段的值
127.0.0.1:6379> hget ar co
"xiaowugui"
如果给定散列里的字段不存在则会返回空,与给一个不存在的散列里的一个不存在的字段效果一样都返回空
127.0.0.1:6379> hsetnx ar co "xiaowugui"
(integer) 1
127.0.0.1:6379> hget ag ci
(nil)
127.0.0.1:6379> hget ao ci
(nil)
HINCRBY 对存储的整数值执行加减法操作
与字符串键的incrby命令一样,如果散列的字段里存储着能被redis解释为整数的数字,那么用户就可以使用hincrby命令为该字段的值加上指定的整数增量
127.0.0.1:6379> hget ao ci
"852"
127.0.0.1:6379> hincrby ao ci 90
(integer) 942
127.0.0.1:6379> hget ao ci
"942"
执行减法操作,必须传负数
127.0.0.1:6379> hincrby ao ci -290
(integer) 652
127.0.0.1:6379> hget ao ci
"652"
增量必须解释为整数,异常情况处理
127.0.0.1:6379> hset vx yu o
(integer) 1
127.0.0.1:6379> hincrby vx yu 5
(error) ERR hash value is not an integer
127.0.0.1:6379> hincrby ao ci "jn"
(error) ERR value is not an integer or out of range
127.0.0.1:6379> hincrby ao ci 3.8
(error) ERR value is not an integer or out of range
hincrbyfloat 对存储的数字执行浮点数加减法操作
hincrbyfloat命令的作用与hincrby命令类似,它们之间主要的区别在于hincrbyfloat不仅可以使用整数作为增量,还可以使用浮点数作为增量
127.0.0.1:6379> hincrbyfloat hash field increment
hincrbyfloat命令在成功执行假发操作后,将返回给定字段的当前值作为结果
127.0.0.1:6379> hget hh hg
"100.0099647"
127.0.0.1:6379> hincrbyfloat hh hg 13.2
"113.2099647"
增量与字段值的类型限制,正如之前所说,hincrbyfloat命令不仅可以使用浮点作为增量,还可以使用整数作为增量
127.0.0.1:6379> hget gif ij
"3.14"
127.0.0.1:6379> hincrbyfloat gif ij 10086
"10089.13999999999999968"
此外,不仅存储浮点数的字段可以执行hincrbyfloat命令,存储整数的字段也可以执行hincrbyfloat命令
127.0.0.1:6379> hset cf u 90
(integer) 1
127.0.0.1:6379> hincrbyfloat cf u 10
"100"
127.0.0.1:6379> hincrbyfloat cf u 10.2
"110.2"
执行减法操作
127.0.0.1:6379> hincrbyfloat cf u -10.2
"100"
127.0.0.1:6379> hincrbyfloat cf u -10.2
"89.8"
hstrlen :获取字段的长度
127.0.0.1:6379> hstrlen hash field
示例
127.0.0.1:6379> hget qie g
"yuiokm"
127.0.0.1:6379> hstrlen qie g
(integer) 6
如果给定的字段或散列不存在,命令将返回0
127.0.0.1:6379> hstrlen qie o
(integer) 0
127.0.0.1:6379> hstrlen u g
(integer) 0
检查字段是否存在hexists
hexists 用法
127.0.0.1:6379> hexists hesh field
如果哈希里包含字段则返回1,不包含返回0
127.0.0.1:6379> hexists qie g
(integer) 1
127.0.0.1:6379> hexists qie o
(integer) 0
HDEL删除字段
用法
127.0.0.1:6379> hdel hash field [field ...]
当给的字段成功从哈希里删除是,命令返回1 ;如果给定的哈希字段不存在,命令返回0
127.0.0.1:6379> hset titu gf "yu"
(integer) 1
127.0.0.1:6379> hset titu gh "yu"
(integer) 1
127.0.0.1:6379> hset titu go "yu"
(integer) 1
127.0.0.1:6379> hset titu to "u"
(integer) 1
127.0.0.1:6379> hdel titu gh
(integer) 1
127.0.0.1:6379> hdel titu to
(integer) 1
hlen获取哈利字段数量
127.0.0.1:6379> hlen hash
查看 titu 哈希的字段
127.0.0.1:6379> hlen titu
(integer) 3
如果用户给定的哈希不存在则返回0
127.0.0.1:6379> hlen jb
(integer) 0
hmset:一次为多个字段设置值
127.0.0.1:6379> hmset hash field [field value ...]
为cx设置多个字段
127.0.0.1:6379> hmset cx cq "9" cs "8" fd "6"
OK
更新cx里的值
127.0.0.1:6379> hmset cx cq "6" cs "4" fd "8"
OK
hmget : 一次获取多个值
127.0.0.1:6379> hmget hash field [field ...] [f
获取 cx里“cq”“cs”值
127.0.0.1:6379> hmget cx cq cs
1) "6"
2) "4"
与hget命令一样,如果用户给定的字段不存在那么将返回空
127.0.0.1:6379> hmget cx cq vc cs
1) "6"
2) (nil) --vc 不存在
3) "4"
hkeys、hvals、hgetall:获取所有字段、获取所有值和获取所有字段与值
HKEYS hash 字段
HVALS hash 值
HGETALL hash 字段与值
获取 cx 所有字段
127.0.0.1:6379> HKEYS cx
1) "cq"
2) "cs"
3) "fd"
获取cx所有值
127.0.0.1:6379> HVALS cx
1) "6"
2) "4"
3) "8"
获取所有字段与值
127.0.0.1:6379> HGETALL cx
1) "cq" 字段
2) "6" 值
3) "cs"
4) "4"
5) "fd"
6) "8"
在hgetall命令返回中。没两个元素表示哈希里的一对字段和值,其中奇数位的元素为字段,偶数行为字段的值,如果用户给定哈希不存在将返回空列表
127.0.0.1:6379> HGETALL lj
(empty list or set)
127.0.0.1:6379> HGETALL lj
(empty list or set)
127.0.0.1:6379> HKEYS ll
(empty list or set)
redis哈希操作的更多相关文章
- [Redis-CentOS7]Redis哈希操作(五)
哈希相当于下面Python代码 { "person":{ "name": "peigy", "age": "1 ...
- redis 哈希数据类型简单操作(实现购物车案例)
这里不累赘如何安装redis和php redis扩展,主要熟悉调用redis哈希数据类型 简单方法操作如下 1:hSet 2:hGet 4:hDel 5:hGetAll 4:hExists 5:hI ...
- 八十四:redis之redis的集合、哈希操作
set集合操作 添加元素:sadd set value1 value2... 查看元素:smembers set 移除元素:srem set member 查看集合中的元素个数:scard set 获 ...
- python之redis和memcache操作
Redis 教程 Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理.Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据 ...
- Redis哈希表的实现要点
Redis哈希表的实现要点 哈希算法的选择 针对不同的key使用不同的hash算法,如对整型.字符串以及大小写敏感的字符串分别使用不同的hash算法: 整型的Hash算法使用的是Thomas Wang ...
- redis的hash操作在集中式session中的应用
在集群部署时,为了高可用性的目的,往往把session进行共享,共享分为两种:session复制和集中式管理. redis在session集中式管理中可以起到比较大的作用. 制约session集中式共 ...
- 八十九:redis之python操作redis
安装:pip install redis 连接 字符串操作 插入值 获取 删除值 列表操作,更多操作见源码 添加 获取 集合操作,更多操作见源码 哈希操作,更多操作见源码 事务操作:cache.pip ...
- Redis 以及 Python操作Redis
Redis Redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis有以下特点: -- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可 ...
- Redis数据类型及其操作
redis数据类型即操作 1. 字符串 set 设置字符串 格式: set key value 例子: set name kainhuck get 获取字符串的值 格式: get key 例子: ge ...
随机推荐
- 请求 - axios
实际应用示例 前端不需要做统一的接口防重 前端无法通过判断接口是否返回来释放按钮(因为可以手动刷新页面,将导致刷新前请求丢失) 后端对接口做了防重 通过增加时间戳避免IE9的get请求缓存问题 axi ...
- [CF91B] Queue - 权值线段树
有n个人在队列中等待.假如某个人前面有一个人年龄比他小,那他就会不高兴:定义他的"不高兴度"为他前面留他最远的年龄比他小的人与他的距离,求每个人的不高兴度. n<=10^5 ...
- Mesh R-CNN 论文翻译(实验部分)
本文为 Mesh R-CNN 论文翻译(原理部分)的后续.Mesh R-CNN 原论文. 4 实验 我们在ShapeNet上对网格预测分支进行基准测试,并与最先进的方法相比较.然后,我们在野生的有 ...
- could not parse as expression: "/login" (template: "include/include" - line 32, col 42)
<li><a href="login.html" th:href="/login">登录</a></li> or ...
- Nessus安装出现localhost:8834无法访问
1.下载Nessus https://www.tenable.com/downloads/nessus#download 2.安装方法 详细安装方法参考下文 https://www.ld80.cn/a ...
- Map中放入对象字符串转义问题
在做Zuul网关日志处理的时候,有以下需求: (1)记录请求成功的日志,要求记录请求返回的结果. 遇到的问题: (1)当请求的结果事对象时,会将其转成字符串,在put进map的时候,字符串就会被转义 ...
- EF的预先加载--Eager Loading
预先加载 在对一种类型的实体进行查询时,将相关的实体作为查询的一部分一起加载.预先加载可以使用Include()方法实现. 在此需要说明的是:EF中有两种表关联的方法,一种是Join()方法,一种是I ...
- Python JASON
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写. http://www.runoob.com/python/python-json.ht ...
- JS 获取当天所在月的第一天的日期,最后一天日期,所在周的每天的日期,时间,所在每月日期,时间的计算
/** * 获取当天所在月的最后一天日期,和下一个月的第一天日期 * 调用getMonthDay(d), d默认值为01,d为要设置成的day: */ const getMonthMaxDay = ( ...
- MySql -- primary key主键约束
4.primary key主键约束 在一张表中: 1) 主键约束是 NOT NULL.UNIQUE唯一的记录. 2) 主键约束必须是唯一的值. 3) 主键约束列不能包含 NULL 值. 注意:每个表都 ...