千家信息网

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

发表于:2024-11-30 作者:千家信息网编辑
千家信息网最后更新 2024年11月30日,Redis中怎么实现高可用分布式,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。慢查询作用将查询时间超过一定限制的语句记录到日志中,找
千家信息网最后更新 2024年11月30日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安全错误 数据库的锁怎样保障安全 mc组件管理连接服务器失败 重庆大数据软件开发服务费 金融行业网络安全等级评估 软件开发板块的股票有哪些 软件开发公工作室 软件开发招聘面试经验 软件开发增值税征收 软件开发简历教育经历 中山大学有网络安全学院吗 服务器性能管理系统哪个好 查看数据库中所有分区表 方舟生存进化服务器孵化蛋 网络安全应用7000字 致中学生网络安全的一封信 滨海新区互联网软件开发质量保障 电子商务的网络技术考题 西安黑盒测试网络安全培训 旅游网站数据库设计案例 孝感互联网科技有限公司 服务器故障码150 锐创网络技术 怎么进入roblox服务器 mui 切换刷新数据库 网络侦查技术和网络技术侦查 数据库技术相关理论知识 云服务器价格比较 阿里云盘重启服务器自动挂载 公安部全国户籍数据库 井陉互联网软件开发欢迎咨询 在表中添加一个列数据库
0