千家信息网

Redis中怎么实现高可用分布式

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,Redis中怎么实现高可用分布式,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。慢查询作用将查询时间超过一定限制的语句记录到日志中,找
千家信息网最后更新 2026年11月02日Redis中怎么实现高可用分布式

Redis中怎么实现高可用分布式,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

慢查询

作用

将查询时间超过一定限制的语句记录到日志中,找到系统中瓶颈的命令

客户端请求的生命周期

两点说明:

1.慢查询发生在第三阶段,判断依据是执行时长

2.客户端超时不一定慢查询(四个步骤都可能),但慢查询是客户端超时的一个可能因素

两个配置

config get slowlog-max-len=128 先进先出队列 通常设置1000,固定长度、保存在内存中

config get slowlog-log-slower-than=10000 慢查询阈值,单位微秒,即10ms,通常设置1ms

=0即记录所有命令(查看命令所用时间),<0即不记录任何命令

慢查询命令

slowlog get [n] 获取慢查询队列

slowlog len 获取慢查询队列长度 队列里面有多少慢查询

slowlog reset 清空慢查询队列

定期持久化慢查询

动态配置

config set slowlog-max-len 1000

config set slowlog-log-slower-than 1000

4.2pipeline 流水线

作用

提高客户端的效率,减少网络时间的消耗

流水线的作用

注意:

redis命令是微秒级别

pipeline每次条数要控制(网络)

pipeline-Jedis使用

maven依赖

不使用pipeline,1w hset -> 50s

使用pipeline,1w hset -> 0.7s

使用建议:

注意每次pipeline携带数据量

pipeline每次只能作用在一个redis节点上

M操作与pipeline区别

4.3 发布订阅

角色:发布者 订阅者 频道

订阅者可以订阅多频道,但无法接收到订阅前的消息

命令

subscribe channel [channel ...] 订阅一个或多个频道的信息

publish channel message 信息发送到指定的频道

unsubscribe [channel [channel ...]] 指退订给定频道

Redis不仅可作为缓存服务器,还可用作消息队列。它的列表类型天生支持用作消息队列

消息队列 要抢 比如红包

发布订阅 都有 比如公告

4.4 Bitmap 位图

作用:减少内存的方案

命令

setbit key offset value 设置指定位置偏移量为0/1

getbit key offset 获取指定位的值

bitcount key [start end] 获取指定范围值为1的个数,不指定则为全部

bitop op destkey key [key...] 做多个Bitmap的and(交集)、or(并集)、not(非)、xor(异或),并将结果保存在destkey

bitpos key targetBit [start] [end] 计算范围内,偏移量等于targetBit的,第一个位置,不指定范围则为全部

实战:独立用户统计

1亿用户,5千五独立,使用set和Bitmap区别

只有10万独立用户

使用经验

type=string,最大512MB

注意setbit时的偏移量,可能有较大耗时

位图不是绝对好

4.5 HyperLogLog

作用

极小空间完成独立数据统计,用来做基数统计(不重复元素统计)的算法,HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定 的、并且是很小的,本质还是字符串

命令

pfadd key element [element ...] 添加指定元素到 HyperLogLog 中

pfcount key [key ...] 返回给定 HyperLogLog 的基数估算值

pfmerge destkey sourcekey [sourcekey ...] 将多个 HyperLogLog 合并为一个 HyperLogLog

使用经验

是否能容忍错误,基数估计就是在误差可接受的范围内,快速计算基数。

是否需要单挑数据

4.6 GEO 地理信息

作用

用于存储经纬度,计算两地距离,范围计算等, 其实zset类型实现

命令

geoadd key 经度longitude 纬度latitude 城市member 添加地理位置信息

geopos key member 获取地理位置信息

geodist key member1 member2[unit] 获取两地距离,单位m、km、mi(英里)、ft(尺)

关于Redis中怎么实现高可用分布式问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

查询 命令 队列 作用 订阅 频道 信息 基数 范围 位置 客户 消息 独立 统计 元素 地理 多个 客户端 数据 时间 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技公司 智能科技公司是互联网公司吗 凡科互联网科技 亿账通互联网科技 有木互联网科技 顺玮阁互联网科技 润盈互联网科技 苏州大垚互联网科技 互联网高科技股票 科技赋能互联网健康 西藏七维空间互联网科技有限公司 成都互联网科技公司100强 湖北码尼互联网科技有限公司电话 互联网5g黑科技有哪些 链环科技传统企业怎么转型互联网 健康食品互联网创新科技园项目 世界互联网领先科技成果获奖 江苏互联网智能科技产品出厂价 杭州融税互联网科技有限公司 上海旺乐尼互联网科技有限公司 湖南永感互联网科技有限公司 世界互联网领先科技成果 美国互联网黑科技 互联网科技的未来发展 海南科技产业互联网平台 互联网科技产品 中国互联网公司排名锤子科技 工业互联网展湾科技股份有限公司 中天科技中国工业互联网 山东大美朱楼互联网科技有限公司
0