Redis之哈希类型命令
Hash(哈希)
Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。
Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。
使用场景 : 用户信息
hset : 新建一个哈希表,设置成功返回1,如果已存在覆盖旧值,返回0(值可以为''")
127.0.0.1:6379> hset yhq name yhq
(integer) 1
127.0.0.1:6379> hset yhq name qhh
(integer) 0
hmset: 新建一个哈希表,设置多个k-v,如果已存在会覆盖,成功返回ok(值可以为''")
127.0.0.1:6379> hmsetqhh name yhq age 24 sex 0
OK
hsetnx : 当哈希表不存在时创建并设置且成功返回1,如果已存在无效,返回0
127.0.0.1:6379> hsetnx yhqqhh name qhh
(integer) 1
127.0.0.1:6379> hsetnx yhqqhh name yhq
(integer) 0
hstrlen : 获取指定字段值的长度
127.0.0.1:6379> hmset myhash f1 HelloWorld f2 99 f3 -256
OK
127.0.0.1:6379> hstrlen myhash f1
(integer) 10
127.0.0.1:6379> hstrlen myhash f2
(integer) 2
127.0.0.1:6379> hstrlen myhash f3
(integer) 4
hget : 获取哈希表字段的值,不存在返回nil
127.0.0.1:6379> hget yhq name
"qhh"
127.0.0.1:6379> hget qhh name
"yhq"
127.0.0.1:6379> hget qhh age
"24"
127.0.0.1:6379> hget qhh sex
"0"
127.0.0.1:6379> hget yhq id
(nil)
hgetall : 获取哈希表所有k-v,不存在返回空列表
127.0.0.1:6379> hgetall qhh
1) "name"
2) "yhq"
3) "age"
4) "24"
5) "sex"
6) "0"
127.0.0.1:6379> hgetall q
(empty list or set)
hmget : 获取一个或多个给定的值,不存在返回nil
127.0.0.1:6379> hmget qhh name age a
1) "yhq"
2) "24"
3) (nil)
hdel : 删除一个或者多个哈希表字段,不存在忽略,返回删除字段的个数
127.0.0.1:6379> hgetall qhh
1) "name"
2) "1"
3) "age"
4) "2"
127.0.0.1:6379> hdel qhh age a
(integer) 1
127.0.0.1:6379> hgetall qhh
1) "name"
2) "1"
hexists : 查询哈希表字段是否存在,存在返回1,不存在返回0
127.0.0.1:6379> hgetall must
1) "name"
2) ""
3) "age"
4) "1"
127.0.0.1:6379> hexists must name
(integer) 1
127.0.0.1:6379> hexists must na
(integer) 0
hkeys : 返回哈希表所有的k,key不存在返回空列表
127.0.0.1:6379> hkeys must
1) "name"
2) "age"
127.0.0.1:6379> hkeys must1
(empty list or set)
hvals : 返回哈希表所有k值,key不存在返回空列表
127.0.0.1:6379> hvals must
1) ""
2) "1"
127.0.0.1:6379> hvals must1
(empty list or set)
hlen : 返回哈希表字段数量,key不存在返回0
127.0.0.1:6379> hlen must
(integer) 2
hincrby : 对哈希表字段进行数值增删修改,字段串返回错误,如果不存在则执行创建操作
127.0.0.1:6379> hincrby yhq name 100
(integer) 100
127.0.0.1:6379> hgetall yhq
1) "name"
2) "100"
127.0.0.1:6379> hset yhq sex n
(integer) 1
127.0.0.1:6379> hincrby yhq sex 100
(error) ERR hash value is not an integer
127.0.0.1:6379> hincrby yhq name -100
(integer) 0
127.0.0.1:6379> hgetall yhq
1) "name"
2) "0"
3) "sex"
4) "n"
hincrbyfloat : 对哈希表字段进行数值增删浮点值修改,字段串返回错误,如果不存在则执行创建操作
127.0.0.1:6379> hincrbyfloat yhq size 1.1
"1.1"
127.0.0.1:6379> hincrbyfloat yhq name yhq
(error) ERR value is not a valid float
127.0.0.1:6379> hincrbyfloat yhq size -11.11
"-10.01"
127.0.0.1:6379> hgetall yhq
1) "size"
2) "-10.01"
Redis之哈希类型命令的更多相关文章
- redis:hash哈希类型的操作
1. hash哈希类型的操作 1.1. hset key field value 语法:hset key field value 作用:把key中field域的值设为value 注:如果没有field ...
- Redis 常用命令学习三:哈希类型命令
1.赋值与取值命令 127.0.0.1:6379> hset stu name qiao (integer) 1 127.0.0.1:6379> hset stu sex man (int ...
- Redis之无序集合类型命令
Redis 集合(Set) Redis 的 Set 是 String 类型的无序集合.集合成员是唯一的,这就意味着集合中不能出现重复的数据. Redis 中集合是通过哈希表实现的,所以添加,删除,查找 ...
- Redis的List链表类型命令
List是一个链表结构,主要功能是push.pop.获取一个范围的所有值等等,操作中key理解为链表的名字.list类型其实就是一个每个子元素都是string类型的双向链表.我们可以通过push.po ...
- API的理解和使用——哈希类型的命令
哈希常用的命令复习 命令 功能 hset key field value 设置哈希值 hsetnx 设置哈希值,field或键必须不存在 hget 获取某个file对应的值 hdel 删除一个或多个f ...
- redis 学习(4)-- 哈希类型
redis 学习(4)-- 哈希类型 介绍 redis 中哈希键值结构: 可以看出:哈希键值包括 key,field,value 这三部分,即键,属性,值这三部分.可以这样来表示: key, (fie ...
- Redis之字符串类型命令
String(字符串) string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value. string 类型是二进制安全的.意思是 ...
- 第二百九十六节,python操作redis缓存-Hash哈希类型,可以理解为字典类型
第二百九十六节,python操作redis缓存-Hash哈希类型,可以理解为字典类型 Hash操作,redis中Hash在内存中的存储格式如下图: hset(name, key, value)name ...
- Python操作redis系列以 哈希(Hash)命令详解(四)
# -*- coding: utf-8 -*- import redis #这个redis不能用,请根据自己的需要修改 r =redis.Redis(host=") 1. Hset 命令用于 ...
随机推荐
- keras load model 遇到 自定义函数 Lambda(lambda x: softmax(x, axis=1), NameError: global name 'softmax' is not defined
问题 在定义模型的时候,自定义了一个函数 模型保存之后,load 模型的时候报错: 解决 load 模型的时候需要指定custom object 参考: https://faroit.github.i ...
- DIV CSS 绘制风车
我得说,CSS和DIV是个有趣的东西. 由于脑袋一无聊,突然想,画个DIV风车怎么样,于是就画了一个. border的风格可以自主选择. 上代码: <style> *{ margin:0p ...
- wordpress 修改域名后的403
wordpress的好处就是方便,不好呢,额,反正就是有. 最近,修改域名,也遇到了这个问题[修改域名后,出现403]. 网上的办法似乎有很多,但有一些并不好,比如修改数据库什么的,如果是新手,数据库 ...
- VS2010中如何实现自定义MFC控件
本文简要讲解在VS2010中怎样实现自定义MFC控件的知识,以下是分步骤说明. 一.自定义一个空白控件 1.先创建一个MFC工程 NEW Project-->MFC-->MFC Appl ...
- zw版【转发·台湾nvp系列Delphi例程】HALCON Regiongrowing
zw版[转发·台湾nvp系列Delphi例程]HALCON Regiongrowing procedure TForm1.Button1Click(Sender: TObject);var img : ...
- 支持向量机(SVM)中的 SMO算法
1. 前言 最近又重新复习了一遍支持向量机(SVM).其实个人感觉SVM整体可以分成三个部分: 1. SVM理论本身:包括最大间隔超平面(Maximum Margin Classifier),拉格朗日 ...
- Swift Optional
拆包和解包的原因: 其实所谓的 nil 就是 Optional.None, 非 nil 就是Optional.Some, 然后会通过Some(T)包装(wrap)原始值,这也是为什么在使用 Optio ...
- Scrapy: 初识Scrapy
1.初识Scrapy Scrapy是为了爬取网站数据,提取结构性数据而编写的应用框架.可以应用在包括数据挖掘,信息处理或者存储历史数据等一系列的程序中. 2.选择一个网站 当需要从某个网站获取信息时, ...
- bzoj1633 / P2875 [USACO07FEB]牛的词汇The Cow Lexicon
P2875 [USACO07FEB]牛的词汇The Cow Lexicon 三维dp 它慢,但它好写. 直接根据题意设三个状态: $f[i][j][k]$表示主串扫到第$i$个字母,匹配到第$j$个单 ...
- django session 使用案例
django session 使用案例 HTTP被设计为”无状态”,每次请求都处于相同的空间中. 在一次请求和下一次请求之间没有任何状态保持,我们无法根据请求的任何方面(IP地址,用户代理等)来识别来 ...