redis
文章平均质量分 93
源码了解:hadluo
这个作者很懒,什么都没留下…
展开
-
Canal 详解 Mysql与Redis数据同步 解决方案
要保证数据库和redis强一致性是不可能的,肯定有少许时间的不一致。canal是阿里的一套组件,用来监听mysql master发送的类似binary log的数据,然后让消息费去消费。Canal 简单原理canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议 mysql master收到dump请求,开始推送binary log给slave(也就是canal) canal解析binary log对象(原始为byte流)Ca原创 2021-03-12 09:27:45 · 501 阅读 · 0 评论 -
Jedis 连接池 详解
一. JedisPool的几个重要参数介绍1. maxTotal控制连接池里面最多构建多少个Jedis实例。请看下面代码public static void main(String[] args) { JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(2); JedisPool pool = new JedisPool(config,"172.29.2.10",7000); while(true) {原创 2021-03-12 09:27:10 · 5117 阅读 · 1 评论 -
HashedWheelTimer 源码解析
此文是接着上文续讲的,建议看下上文在看此文。Redisson 延时队列 原理 详解githubs.xyzHashedWheelTimer 简介Redisson延时队列里面用到了HashedWheelTimer 作为延时任务触发机制。HashedWheelTimer 属于netty-common项目下的工具。HashedWheelTimer本质是一种类似延迟任务队列的实现,适用于对时效性不高的,可快速执行的,大量这样的“小”任务,能够做到高性能,低消耗。Demo用法HashedWh原创 2021-03-12 09:26:35 · 455 阅读 · 0 评论 -
Redisson 延时队列 原理 详解
花了一天研究了下Redisson 的延时队列,RBlockingQueue ,RDelayedQueue 。 网上没一个说清楚的,而且都是说轮询redis的zset,都是错误的! 让我来纠正,如果我有错的也可指出。Demo用法public static void main(String[] args) throws InterruptedException, UnsupportedEncodingException { Config config = new Config(); config.原创 2021-03-12 09:25:48 · 6312 阅读 · 1 评论 -
Redis原理(4) Cluster 详解
先看一张图,大致触摸下Redis ClusterRedis Cluster要求至少需要3个master才能组成一个集群,同时每个master至少需要有一个slave节点。各个节点之间保持TCP通信。当master发生了宕机, Redis Cluster自动会将对应的slave节点提拔为master,来重新对外提供服务。Redis Cluster 功能 :负载均衡,故障切换,主从复制。负载均衡先说下槽,集群中每个redis实例都负责接管一部分槽,总槽数为:16384(2^14),如果有..原创 2021-03-11 17:42:10 · 1206 阅读 · 0 评论 -
Redis原理(4)持久化 - AOF 篇
一. AOF简介AOF( append only file )持久化以独立日志的方式记录每次写命令,并在 Redis 重启时在重新执行 AOF 文件中的命令以达到恢复数据的目的。AOF 的主要作用是解决数据持久化的实时性。二. AOF相关配置# 是否开启AOF,默认关闭(no)appendonly yes# 指定 AOF 文件名appendfilename appendonly.aof# Redis支持三种不同的刷写模式:# appendfsync always #每次收到.原创 2021-03-11 17:41:38 · 564 阅读 · 1 评论 -
Redis原理(3) 持久化 RDB
一. RDB 简介Redis的RDB是用来将redis内存数据持久化到磁盘的一种机制,以此来防止redis数据全量丢失。二. RDB 相关配置# 900秒(15分钟)内至少1个key值改变(则进行数据库保存--持久化) save "" 关闭RDB功能save 900 1 save 300 10 save 60 10000 # 如果持久化出错,主进程是否停止写入stop-writes-on-bgsave-error yes#是否压缩 ,建议不开启,压缩也会消耗cpu,磁盘的原创 2021-03-11 17:40:59 · 275 阅读 · 0 评论 -
Redis原理(2)内存优化细节
每一片条凋零的落叶,每一个残破的鸟窝,每一寸苍白的头发.... 都是为了生命的延续。本文就是接着上文的延续:Redis 内存全面详解githubs.xyz一. 从编码上来优化内存几种redis数据编码介绍(不全介绍)1. embstr172.29.2.12:7000> set a 11111111222222333331212222233333333332333333OK172.29.2.12:7000> OBJECT encoding a"embstr"上原创 2021-03-11 17:40:01 · 218 阅读 · 0 评论 -
Redis原理(1) 内存全面详解
一. 我们怎么观察线上Redis内存我们如果在我们的redis.conf配置文件里面配置:# 最大内存设置,100Mmaxmemory 104857600查看redis内存信息 (info Memory)172.29.2.11:7002> info Memory# Memoryused_memory:2598042used_memory_human:2.48Mused_memory_rss:3002368used_memory_rss_human:2.86Mmaxm原创 2021-03-11 17:39:20 · 1429 阅读 · 0 评论 -
Redis集群监控 (Granafa Prometheus Exporter 实战)
一. 写在前面的话本文是实战,来监控上篇文章我们搭建的Redis集群。我是花了2天才搞定,就因为granafa的版本问题。读者搭建时一定要用我指定的版本,否则你会尝到绝望的果实,看到血淋淋的键盘。二. Redis集群监控的三大利器redis exporter Prometheus granafaredis exporter 负责采集redis指标数据,通过 http 暴露给 Prometheus 拉取,然后通过granafa 将这些指标绘图展示数据。功能结构图不知道盗的哪里的.原创 2021-03-11 17:38:40 · 892 阅读 · 1 评论 -
Redis集群 实战 搭建
写给前面的话本文是自己亲自搭建成功过,3主3从Redis Cluster模式集群。 搭建过程有较多坑,本人在过程中心力憔悴,但好在最后成功了,读者也要有耐心。一. 资源准备准备三台机器(能连外网,能相互ping通),每台机器安装2个redis进程172.29.2.10 172.29.2.11 172.29.2.12分别安装依赖包,关闭防火墙[root@localhost src]# systemctl disable firewalld[root@localhost src]#.原创 2021-03-11 17:38:04 · 185 阅读 · 0 评论