APP下载

Redis的高阶特性一览

消息来源:baojiabao.com 作者: 发布时间:2026-05-12

报价宝综合消息Redis的高阶特性一览

应用场景

快取系统:用于缓解数据库的高并发压力计数器:使用Redis原子操作,用于社交网络的转发数,评论数,粉丝数,关注数等排行榜:使用zset资料结构,进行排行榜计算实时系统:使用Redis位图的功能实现布隆过滤器,进而实现垃圾邮件处理系统讯息伫列:使用list资料结构,讯息释出者push资料,多个讯息订阅者通过阻塞执行绪pop资料,以此提供简单的讯息伫列能力之所以说简单,是因为Redis官方不提供可靠消费/释出的机制;需要自行实现故障转移、伫列持久化、伫列监控和流量控制等mq具备的功能;

高阶功能

慢查询

慢查询只记录Redis在处理储存的时间计数(图中的3步骤),并不包含网络通讯时间和排队时间,所以客户端超时分析时要综合每个因素。

注意:

慢查询储存数量引数不要设定过小,同时最好能定期持久化慢查询记录,方便历史问题排查。pipline

pipline用于异步处理大量Redis请求。

注意:

大量任务需要划分出多个pipline进行操作(否则,网络和等待时间都承受压力)。pipline每次只能作用在一个Redis节点上。M操作(mget,mset类似的指令)相比pipline,前者是原子操作,后者并不是。Redis会把一个携带很多命令的pipeline拆分成几个子命令。

释出订阅

Redis 释出订阅(pub/sub)是一种讯息通讯模式:传送者(pub)传送讯息,订阅者(sub)接收讯息。

注意:

Redis无法做讯息堆积(新订阅者无法获取历史订阅讯息)

bitmap

字串big对应的二进位制(ASCII码)如图所示, bitmap可以直接操控位。使用每个数位代表一个使用者或者状态,相比int资料结构储存,节省了32倍的内存空间。

注意:

bitmap并不是适合所有场景去替换常规的资料储存bit是string型别,最大只能存512MB注意setbit函式会自动补位,所以生产环境要注意setbit的偏移量,可能会造成较大的耗时

Hyperloglog

基于HyperLogLog算法,实现用极小空间完成独立数量的统计,型别本质是string。

注意:

无法保证资料完全正确。官网说明错误率为0.81%无法取到单条资料GEO

GEO(地理资讯定位)是Redis3.2版本释出的功能,储存经纬度,计算两地距离,范围计算等,型别本质是zset。

Redis-sentinel

Redis哨兵是Redis2.8版本释出的功能,解决Redis丛集的故障转移等痛点,支援高可用。

Redis-cluster

Redis丛集是Redis3.0版本释出的功能,支援分散式

更多内容,欢迎关注微信公众号:全菜工程师小辉~

2020-01-29 16:05:00

相关文章