REDIS HGETALL按序输出结果
生活随笔
收集整理的這篇文章主要介紹了
REDIS HGETALL按序输出结果
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
今天在項目中使用Redis的hash結構存一些商品數據,存的時候是按照商品id從小到大放進去的。然后現在想hgetAll著取出來,也能夠按照id順序再取出來,但是發(fā)現結果并不是這樣的,輸出是亂序的。
隨決定看一下到底是為啥,發(fā)現了貓膩。
《REDIS設計與實現》中指出,
創(chuàng)建空白哈希表時, 程序默認使用 REDIS_ENCODING_ZIPLIST 編碼, 當以下任何一個條件被滿足時, 程序將編碼從 REDIS_ENCODING_ZIPLIST 切換為 REDIS_ENCODING_HT :
哈希表中某個鍵或某個值的長度大于 server.hash_max_ziplist_value (默認值為 64 )。
壓縮列表中的節(jié)點數量大于 server.hash_max_ziplist_entries (默認值為 512 )。
然后看了看自己的數據,發(fā)現值的長度大于64了,因此采用了hashtable的編碼格式。是無序的。
轉載于:https://blog.51cto.com/fulin0532/2347485
總結
以上是生活随笔為你收集整理的REDIS HGETALL按序输出结果的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: wap ios android,iOS/
- 下一篇: 用C语言开发一个BT下载软件 (四) -