Redis是一种高性能、开源的使用内存数据结构存储系统。Redis最初由Salvatore Sanfilippo开发,后来也由Pivotal赞助和维护。Redis最初可以在BSD 2-Clause协议开源的的许可下免费分发,后来做了更新,也可以在Apache 2.0许可下发布。
Redis集合是类似于其他数据库中的集合,它们有四种类型:HyperLogLog、Bloom Filter、Bitmap、Zsets,各种类型的集合插入和查询效率都会不同。
1、HyperLogLog
HyperLogLog是用于计算和估计基数的统计算法,可以有效地计算大数据集中不重复元素的数量。Redis实现了HyperLogLog数据结构,可以维护和统计一组元素,使用空间只有普通算法’s的1/20 ,估算基数的误差在2% 左右,而且操作效率非常高。
2、Bloom Filter
Bloom Filter可以用来检查一个元素是否存在于一个集合中,因此它只是一个可能大小的bit map,它可以准确地区分出指定集合中的元素。尽管他有着良好的性能,但是他不能操作太多的key,因为bitmap的大小是固定的,而且他没有办法更新。
3、Bitmap
Bitmap是Redis中一种比较特殊的数据结构,允许它再给定的key之下,存储一个对应的bitmap。经常被用在可以识别一组元素的场景,例如字符串文本搜索,通过设置的key的比特位,可以轻松得知某一元素是否存在。
4、Zsets
Zsets也叫sorted sets,是一种有序的集合,元素都会关联一个权重值,并且元素是按照这个权重排序的,这使得可以在获取的时候直接得到你想要的结果。
以上就是Redis集合的四种类型以及它们的底层实现分析,它们对于优化和提升Redis存储性能非常有用。下面以代码实例来说明Zsets在Redis上的常用操作:
# 将元素member添加到sorted set中,如果member存在,则更新它的score
127.0.0.1:6379> ZADD myzset 10 member1
# 查询zset中member1的score
127.0.0.1:6379> ZSCORE myzset member1
# 返回结果
10
# 返回zset中指定score范围内的元素
127.0.0.1:6379> ZRANGEBYSCORE myzset 8 10
# 返回结果
member1
香港服务器选创新互联,2H2G首月10元开通。
创新互联(www.cdcxhl.com)互联网服务提供商,拥有超过10年的服务器租用、服务器托管、云服务器、虚拟主机、网站系统开发经验。专业提供云主机、虚拟主机、域名注册、VPS主机、云服务器、香港云服务器、免备案服务器等。
标题名称:无穷软件Redis集合的底层实现分析(redis集合底层)
标题来源:http://www.shufengxianlan.com/qtweb/news18/461218.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联