加入收藏 | 设为首页 | 会员中心 | 我要投稿 淮安站长网 (https://www.0517zz.cn/)- 运营、云管理、经验、智能边缘、云硬盘!
当前位置: 首页 > 建站 > 正文

Redis避不开的五种数据结构

发布时间:2018-10-23 20:14:51 所属栏目:建站 来源:编辑部的故事
导读:副标题#e# Redis 中有 5 种数据结构,分别是字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set),因为使用 Redis 场景的开发中肯定是无法避开这些基础结构的,所以熟练掌握它们也就成了一项必不可少的能力。本文章精要地介绍了 Redi

内部编码

  • intset(整数集合):当集合中的元素都是整数,并且集合中的元素个数小于 512 个时,Redis 会选用 intset 作为底层内部实现。
  • hashtable(哈希表):当上述条件不满足时,Redis 会采用 hashtable 作为底层实现。

备注:我们可以通过 set-max-intset-entries 参数来设置上述中的默认参数。

下面我们看一下具体的事例,来验证我们上面提到的内部编码。

当元素个数较少并且都是整数时,内部编码为 intset。

Redis避不开的五种数据结构

当元素不全是整数时,内部编码为 hashtable。

Redis避不开的五种数据结构

当元素个数超过 512 个时,内部编码为 hashtable。

  1. import redis  
  2. r = redis.Redis(host='127.0.0.1', port=6379)  
  3. if r.object('encoding', 'setkey') != None:  
  4. print('Key为【setkey】的字节编码为【%s】' % r.object('encoding', 'setkey').decode('utf-8'))  
  5. for i in range(1, 600):  
  6. r.sadd('setkey', i)  
  7. if r.object('encoding', 'setkey') != None:  
  8. print('Key为【setkey】的字节编码为【%s】' % r.object('encoding', 'setkey').decode('utf-8')) 
  9. Key为【setkey】的字节编码为【intset】
  10. Key为【setkey】的字节编码为【hashtable】

有序集合类型

(编辑:淮安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读