redis三种特殊数据结构

引言

redis有3种特殊的数据结构:hyperloglog,bitmap,geo

Hyperloglog

这个结构可以非常省内存的去统计各种计数,比如注册 IP 数每日访问 IP 数页面实时UV在线用户数等,误差为80%,大数据下误差较小,redis通过string存储Hyperloglog桶的计数值

PFADD:添加数据

PFCOUNT:统计数据

PFMERGE:合并多个hyperloglog

Bitmap

Bitmap就是通过一个bit位来表示某个元素对应的值或者状态其中的 key 就是对应元素本身,实际上底层也是通过对字符串的操作来实现 Redis2.2版本之后新增了setbit,getbit,bitcount等几个 bitmap 相关命令

其底层是String类型,二进制字符数组

![2020-08-02 14-52-53 的屏幕截图](/home/laglangyue/Pictures/2020-08-02 14-52-53 的屏幕截图.png)

可以用于储存用户是否在线状态,活跃状态,签到,布隆过滤器

Geo

Geo为空间数据,用于附件位置,摇一摇等地理信息,redis使用zset实现,将三维展开为2维矩形,再展开为1维

geoadd key longitude latitude member [longitude latitude member ...]

将给定的空间元素(纬度、经度、名字)添加到指定的键里面

geopos key member [member ...]

从键里面返回所有给定位置元素的位置(经度和纬度)

geodist key member1 member2 [unit]

返回两个给定位置之间的距离。如果两个位置之间的其中一个不存在, 那么命令返回空值

unit为单位;支持m/km/mi英里/ft英尺,默认为米

georadius key longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [ASC|DESC] [COUNT count]

以给定的经纬度为中心, 返回键包含的位置元素当中, 与中心的距离不超过给定最大距离的所有位置元素,其他参数如下:

  • WITHDIST: 在返回位置元素的同时, 将位置元素与中心之间的距离也一并返回。距离的单位和用户给定的范围单位保持一致。
  • WITHCOORD: 将位置元素的经度和维度也一并返回。
  • WITHHASH: 以 52 位有符号整数的形式, 返回位置元素经过原始 geohash 编码的有序集合分值。
中间件理论与实践 文章被收录于专栏

涉及redis基础理论及其应用,包括缓存,分布式锁,缓存数据库双写一致性,秒杀系统 涉及rabbitmq,kafka等一些中间件

全部评论

相关推荐

10-19 10:28
已编辑
西南石油大学 后端工程师
团孝子已上线feeling:面了很多家公司,能感受到目前只有小公司+外包喜欢问八股。大厂虽然也问八股,但是是从实习、项目中进行提问,并且大厂会问很深,面试官也会对你的回答进行思考➕追问,所以准备大厂面试前一定要备好相关资料。对于算法,我做的是codetop前100+力扣hot100+力扣高频150,面试中实感hot100就足够,基本上只要是hot100就秒答。对于项目和八股,我做的也是烂大街的星球项目,八股则是看小林和问ai,自己也写了很多技术博客和画了很多思维导图,并且自己也尝试用嘴巴说出来,不只停留于纸面。运气也很重要,必须要让面试官/HR看到简历才行,所以建议投递时间是下午两点。tl:第一岗位9.9 投递9.10 一面(一面评价:最近见过最强的大三,结束五分钟后约二面,都晚上九点了不下班吗)9.11 二面(三道算法a出两道,反问评价:经验不够等横向,我实习生要啥经验)9.21挂(实习时间过短+其他原因,想要一年实习的,为什么不招个正职)第二岗位10.10投递10.11约面(主管打电话,说看到我之前投递记录了想要我挂qa职进去干后端,同意)10.14 一面(无八股,主动说确实很强,意愿很强)10.16 oc其余,友邦,东软,东华,惠择,用友oc已拒京东测开一面挂(投后端被测开捞)腾讯测试已拒(投后端被测开捞)ps:表扬惠择的主管面,没怎么问技术(可能是一面面试官沟通过了),全程一起讲大道理,解答了心中很多疑惑,也告诉我以面试官角度来看怎么选候选人,如果可以下次一定选惠择
HeaoDng:美团好像可以触发一面通
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务