博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
REDIS HGETALL按序输出结果
阅读量:6910 次
发布时间:2019-06-27

本文共 459 字,大约阅读时间需要 1 分钟。

今天在项目中使用Redis的hash结构存一些商品数据,存的时候是按照商品id从小到大放进去的。然后现在想hgetAll着取出来,也能够按照id顺序再取出来,但是发现结果并不是这样的,输出是乱序的。

随决定看一下到底是为啥,发现了猫腻。

《REDIS设计与实现》中指出,

创建空白哈希表时, 程序默认使用 REDIS_ENCODING_ZIPLIST 编码, 当以下任何一个条件被满足时, 程序将编码从 REDIS_ENCODING_ZIPLIST 切换为 REDIS_ENCODING_HT :

哈希表中某个键或某个值的长度大于 server.hash_max_ziplist_value (默认值为 64 )。

压缩列表中的节点数量大于 server.hash_max_ziplist_entries (默认值为 512 )。

然后看了看自己的数据,发现值的长度大于64了,因此采用了hashtable的编码格式。是无序的。

转载于:https://blog.51cto.com/fulin0532/2347485

你可能感兴趣的文章
我的友情链接
查看>>
Java学习笔记1-初始化的顺序
查看>>
开源Xen是如何衰落的?
查看>>
Pivot Table系列之切片器 (Slicer)
查看>>
windows下安装mysql5.6及基本命令
查看>>
jsp的九个内置对象简介
查看>>
用户如何获得***服务---步骤与效果
查看>>
学习沟通技巧--- SOFTEN法则与SOLER法则
查看>>
用户密码重设对EFS的影响
查看>>
基于mdrill的大数据分析
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
pr睁眼闭眼学习笔记
查看>>
Struts2的一些简单配置,供同同们参考
查看>>
【Interface&navigation】创建一个自定义通知(43)
查看>>
继续探索其他不同类型Activity的属性,可以获取到所有Activity的属性
查看>>
Spring+Struts2+Hibernate整合
查看>>
韩顺平 Mysql数据库优化(一) 优化概述
查看>>
Jenkins实现自动运行jmeter脚本并出具报告的实现
查看>>