redis学习笔记1之五种数据类型和HyperLogLog

1、环境

PHPStudy和RedisDesktopManager

PHPStudy的redis版本
在这里插入图片描述
RedisDesktopManager版本
在这里插入图片描述

注意:
redis3.0之后不支持Windows版本了。
目前想玩redis5.0版本可以通过Linux解压编译。

2、参考runood 教程来学习

Redis 数据类型
Redis支持五种数据类型:
string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

2.1 String(字符串)

string是 redis 最基本的类型,一个 key 对应一个 value。最大能存储 512MB。
在这里插入图片描述

2.2 Hash(哈希)

Redis hash 是一个键值(key=>value)对集合。
Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对 象。每个 hash 可以存储 232 -1 键值对(40多亿)。
HMSET 设置了两个 field=>value 对, HGET 获取对应 field 对应的 value。
在这里插入图片描述

2.3 List(列表)

Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头 部(左边)或者尾部(右边)。列表最多可存储 232 - 1 元素 (4294967295, 每个列表可 存储40多亿)。
在这里插入图片描述 在这里插入图片描述

2.4 Set(集合)

Redis 的 Set 是 string 类型的无序集合。不允许重复的成员。
集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。
集合中最大的成员数为 232 - 1(4294967295, 每个集合可存储40多亿个成员)。
sadd,smembers
sadd命令会添加新元素到SET,可以看到一次性可以添加一个或多个元素。
smembers可以获取set里所有的元素,但是每次调用得到结果的顺序是无法保证的。
在这里插入图片描述 在这里插入图片描述

注意:得到结果,跟输入的顺序是不一样的。所以这是集合是无序的。

Redis 的 SCARD 命令用于返回集合 KEY 的基数(集合中元素的数量)。
在这里插入图片描述 在这里插入图片描述

2.5 sorted set(有序集合)

Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的 成员进行从小到大的排序。
zset的成员是唯一的,但分数(score)却可以重复。
在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

2.6 Redis HyperLogLog

Redis HyperLogLog 是用来做基数统计的算法,HyperLogLog 的优点是,在输入元素的数 量或者体积非常非常大时,计算基数所需的空间总是固定 的、并且是很小的。
在 Redis 里面,每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^64 个不同元素的基 数。这和计算基数时,元素越多耗费内存就越多的集合形成鲜明对比。
但是,因为 HyperLogLog 只会根据输入元素来计算基数,而不会储存输入元素本身, 所以 HyperLogLog 不能像集合那样,返回输入的各个元素。

pfadd和pfcount,一个是增加计数,一个是获取计数。
在这里插入图片描述

pfmerge,用于将两个pf累加形成一个新的pf
在这里插入图片描述 在这里插入图片描述

注意:

1、HyperLogLog的计数统计是有一定的误差的,误差最大在1%以下。

2、HyperLogLog数据结构需要占据12KB的存储空间,所以我们在使用的时候得注意,如果数据量非常小我们可以选择其他方式,但是如果是数据量非常大,那么我们这个数据结构就非常有价值了。但是我们也不要太过于担心它的消耗,一开始初始的时候是没有这么大的,在计数比较小时他是采用稀疏矩阵来进行存储,空间占用率还是很小的,只有到达一定阈值后才会转变成稠密矩阵空间才会到达12KB。
其他:
命令pf前缀的由来
我们使用hash的时候都是h开头hadd,set都是sadd,zset都是z开头,那么我们的HyperLogLog为啥是个pf呢?
HyperLogLog这个数据结构的发明人Philippe Flajolet, pf 是他的名字的首字母缩写。

引用的上文链接:https://blog.csdn.net/mango_love/article/details/106394667

3、总结

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值