Redis基本数据类型哈希Hash常用操作
目录
- Redis数据类型Hash常用操作
- 一、hset
- 二、hget
- 三、hmset
- 四、hmget
- 五、hgetall
- 六、hdel
- 七、hlen
- 八、hexists
- 九、hkeys
- 十、hvals
- 十一、hincrby
- 十二、hsetnx
Redis数据类型Hash常用操作
redis里的hash是一个string类型的field(字段)和value(值)的映射表。特别适合用于存储对象,每个hash可以存储40多亿键值对。
熟悉python的童鞋可以想象成字典dict。之前的数据类型存储都是k-v这样,而hash的存储就是k-dict
,dict
里又会有属于自己的k-v
。
一、hset
为哈希表中的字段赋值,如果哈希表不存在,创建一个新的哈希表被并进行hset操作。
如果字段已经存在于哈希表中,旧值将被覆盖。
hset myhash k1 v1
二、hget
返回哈希表中指定字段的值,如果给定的字段或 key 不存在时,返回 nil。
hget myhash k1
三、hmset
同时将多个 field-value 对设置到哈希表中。
hmset myhash k2 v2 k3 v3
如果哈希表中已存在的字段,则覆盖。
如果哈希表不存在,会创建一个空哈希表,并执行hset操作。
四、hmget
返回哈希表中,一个或多个给定字段的值。
hmget myhash k1 k2 k3 k4
如果指定的字段不存在于哈希表,那么返回一个nil值。
五、hgetall
返回哈希表中,所有的字段和值。
hgetall myhash
注意,在返回值里,紧跟每个字段名(field name)之后是字段的值(value),所以返回值的长度是哈希表大小的两倍。
六、hdel
删除哈希表 key 中的一个或多个指定字段,不存在的字段将被忽略。
hdel myhash k2 k3 k5
返回的是被成功删除字段的数量,不包括被忽略的字段。
七、hlen
获取哈希表中字段的数量。
hlen myhash
八、hexists
查看哈希表的指定字段是否存在。
hexists myhash k1
如果哈希表含有给定字段,返回 1。
如果哈希表不含有给定字段,或 key 不存在,返回 0 。
九、hkeys
获取哈希表中的所有字段(field)。
hkeys myhash
包含哈希表中所有字段(field)列表。 当 key 不存在时,返回一个空列表。
十、hvals
返回哈希表所有字段(field)的值。
hvals myhash
返回一个包含哈希表中所有字段(field)值的列表。 当 key 不存在时,返回一个空表。
十一、hincrby
为哈希表中的字段值加上指定增量值,这个增量也可以是负数,相当于减法。
若哈希表的 key 不存在,创建一个新的哈希表被并执行hincrby
命令。
若指定的字段不存在,那么在执行命令前,字段的值被初始化为 0 。
若对储存字符串值的字段执行,会报错。
十二、hsetnx
为哈希表中不存在的的字段赋值。
若哈希表不存在,创建新的哈希表并进行 hset 操作。
如果字段已经存在于哈希表中,操作无效。
如果key不存在,创建新哈希表并执行hsetnx
命令。
关于redis中hash的应用,比如保存用户信息数据、经常变动的信息,如果不想使用传统的k-v对象去存储,可以用redis的hash。
以上就是Redis基本数据类型哈希Hash常用操作的详细内容,更多关于Redis数据类型哈希Hash的资料请关注我们其它相关文章!
相关推荐
-
解析redis hash应用场景和常用命令
存储对象类数据 hmset user name huyongjian age 23 height 170 常用命令 将多个 field-value对设置到哈希表 key 中 hmset user name huyongjian age 23 height 170 将哈希表 key 中的字段 field 的值设为 value hset user weight 70 只有在字段 field 不存在时,设置哈希表字段的值 hsetnx user address china 获取存储在哈希表中指定字段的
-
解决Java Redis删除HashMap中的key踩到的坑
现象 Java使用Redis删除HashMap中的key时,取出对应的HashMap后通过Java中HashMap的remove方法移除key然后重新调用redis的Hmset方法将覆盖无效 示例代码 //通过key取出对应的HashMap Map<String, String> ruleMap = jedisCluster.hgetAll("HashKey"); //通过java中移除HashMap中的Key ruleMap.remove("ruleA"
-
RedisTemplate常用操作方法总结(set、hash、list、string等)
目录 String类型 Hash类型 List类型 Set类型 zSet类型 Redis常用的数据类型: String Hash List Set zSet Sorted set String类型 保存和读取String(最常用的) System.out.println("缓存正在设置........."); redisTemplate.opsForValue().set("key1","value1"); redisTemplate.opsFo
-
Redis数据类型string和Hash详解
目录 String类型命令操作 设置指定key的值 获取指定key的值 返回key中字符串值的子串 获取多个给定key的值 返回key所对应的字符串的长度 设置一个或多个键值对 将key中所存储的数值加一 将key中所存储的数值减一 字符串追加 Hash类型 设置一个Hash数据 获取指定哈希表中所有的字段和值 获取存储在哈希表中指定字段的值 删除一个或多个哈希表字段 获取哈希表中字段的数量 获取哈希表中的所有字段 获取哈希表中所有的值 摘要:Redis中有五大数据类型,分别是String.Li
-
Redis字典实现、Hash键冲突及渐进式rehash详解
目录 Redis字典实现 哈希表节点结构 哈希表结构 字典 哈希算法 解决hash冲突 rehash 渐进式hash 本笔记参考<Redis设计与实现> P24~ 37 Redis字典实现 哈希表节点结构 typedef struct dictEntry { // 键 void *key; // 值 : 可以是一个指针,或者是一个uint64/int64 的整数 union { void *val; uint64_t u64; int64_t s64 } v; // 指向下一个哈希表节点,形成
-
redis中Hash字典操作的方法
目录 1.Redis操作之Hash操作 redis hash字典操作 1.Redis操作之Hash操作 redis支持五大数据类型,只支持第一层,也就说字典的value值,必须是字符串 如果value值想存字典,必须用json转换一下,转成字符串 redis hash字典操作 reids:{ k1:'dafdadfasf', m1:{ 'key2':value2, 'key1':value1, } } 1.hset(name, key, value),插入值 # name对应的hash中设置一个
-
Redis基本数据类型哈希Hash常用操作
目录 Redis数据类型Hash常用操作 一.hset 二.hget 三.hmset 四.hmget 五.hgetall 六.hdel 七.hlen 八.hexists 九.hkeys 十.hvals 十一.hincrby 十二.hsetnx Redis数据类型Hash常用操作 redis里的hash是一个string类型的field(字段)和value(值)的映射表.特别适合用于存储对象,每个hash可以存储40多亿键值对. 熟悉python的童鞋可以想象成字典dict.之前的数据类型存储都是
-
Redis基本数据类型Zset有序集合常用操作
目录 Redis数据类型Zset有序集合 一.zadd 二.zrange 三.zrevrange 四.zrangebyscore 五. zrem 六.zcard 七.zcount Redis数据类型Zset有序集合 有序集合和集合一样也是 string 类型元素的集合,且不允许重复的成员. 不同的是有序集合每个元素都会关联一个 double 类型的分数.redis 正是通过分数来为集合中的成员进行从小到大的排序. 有序集合的成员是唯一的,但分数(score)却可以重复. 集合是通过哈希表实现的,
-
PHP针对redis常用操作实例详解
本文实例讲述了PHP针对redis常用操作.分享给大家供大家参考,具体如下: /*1.Connection*/ $redis = new Redis(); $redis->connect('127.0.0.1',6379,1);//短链接,本地host,端口为6379,超过1秒放弃链接 $redis->open('127.0.0.1',6379,1);//短链接(同上) $redis->pconnect('127.0.0.1',6379,1);//长链接,本地host,端口为6379,超
-
Redis基本数据类型Set常用操作命令
目录 Redis基本数据类型Set常用操作 一.sadd 添加一个.多个元素 二.smembers 查看集合 三.scard 元素数量 四.srem 移除一个.多个元素 五.srandmember 随机元素 六.spop 随机移除一个.多个元素 七.smove 移动元素到目标集合 八.sdiff 差集 九.sinter 交集 十.sunion 并集 Redis基本数据类型Set常用操作 Set是String类型的无序集合.集合成员是唯一的,这就意味着集合中不能出现重复的数据. 另外,redis中
-
Redis 哈希Hash底层数据结构详解
目录 1. Redis 底层数据结构 2. hashtable 3. redisDb 与 redisObject 4. ziplist 5. linkedlist 6. quicklist 1. Redis 底层数据结构 Redis数据库就像是一个哈希表,首先对key进行哈希运算得到哈希值再取模得到一个下标,每个元素是一个节点,节点之间形成链表.这感觉有点像Java中的HashMap. 不同的数据类型的实现方式是不一样的,可以通过object encoding命令查看底层真正的数据存储结构 同一
-
Redis基本数据类型String常用操作命令
目录 Redis数据类型String操作命令 一.append 追加字符串 二.strlen 获取key 字符串长度 三.自增.自减 四.字符串range 五.替换字符串 六.设置值及其过期时间 setex setnx 七.批量操作 1. mset.mget 2. msetnx 八.设置一个json对象 九.getset 先获取再设置 Redis数据类型String操作命令 一.append 追加字符串 append name 2222 二.strlen 获取key 字符串长度 strlen n
-
python数据类型_字符串常用操作(详解)
这次主要介绍字符串常用操作方法及例子 1.python字符串 在python中声明一个字符串,通常有三种方法:在它的两边加上单引号.双引号或者三引号,如下: name = 'hello' name1 = "hello bei jing " name2 = '''hello shang hai haha''' python中的字符串一旦声明,是不能进行更改的,如下: #字符串为不可变变量,即不能通过对某一位置重新赋值改变内容 name = 'hello' name[0] = 'k' #通
-
Python数据类型和常用操作
目录 一.数值 二.字符串 三.列表 四.元组 五.字典 六.集合 一.数值 数值数据类型用于存储数值,数据类型不可改变,改变会分配一个新的对象,在Python中,“与或非”布尔操作使用关键词and/or/not. 基本常用操作代码: print(True+False) #输出为1,True默认为1,False为0 print(True or False) #输出True,关键字or执行"或"操作 print(5//2) #输出2,//为取整运算符 print(5%2) #输出1,%为
随机推荐
- tomcat共享多个web应用会话的实现方法
- SWT(JFace)体验之FormLayout布局
- vbs解决处理TXT文本数据相关问题实现代码
- Android实现屏幕各尺寸的获取的示例
- 利用Dom操作字符串一例
- 基于Python实现一个简单的银行转账操作
- Android实现简洁的APP登录界面
- jquery实现每个数字上都带进度条的幻灯片
- C#基础之委托用法实例教程
- 数据库插入数据之select into from与insert into select区别详解
- 完美解决jQuery符号$与其他javascript 库、框架冲突的问题
- Ehcache简介_动力节点Java学院整理
- DevExpress实现TreeList向上递归获取符合条件的父节点
- python之线程通过信号pyqtSignal刷新ui的方法
- 利用python画出折线图
- 详解无限滚动插件vue-infinite-scroll源码解析
- Python3+PyInstall+Sciter解决报错缺少dll、html等文件问题
- Linux中查看文本的小技巧(超实用!)
- Python shutil模块用法实例分析
- JS使用canvas中的measureText方法测量字体宽度示例
其他
- python grid登录界面
- iOS UITextField密码明文和密码密文
- spring boot mysql密码存放
- C# opencv图片相似度对比
- springboot 手动注入bean
- 页面有没有点击 有全屏特效
- 微服务docker部署
- pytest控制网页刷新代码
- python 实现扫描线填充算法
- php中的deldot函数
- manage界面的代码是什么意思
- vue 动态面包屑菜单激活回调
- redis锁如何让线程优雅的等待
- 在java类中向spring容器注入数据
- vue-meta3 版本
- go gorm update 单元测试
- idea左侧代码折叠快捷键不见了
- pyqtsignal 多种类型
- 通过监听事件实现select展示10条数据
- spring 指定bean优先注入