Clear Blog

Look what's happening here,it's magical

redis缓存穿透、雪崩问题

缓存雪崩问题: 事前:redis高可用,主从+哨兵,redis cluster,避免全盘崩溃 事中:本地ehcache缓存 + hystrix限流&降级,避免MySQL被打死 事后:redis持久化,快速恢复缓存数据 缓存穿透: 大量缓存中无法命中的key,在查询db中无结果后直接将key的value设置为unknow放到缓存中

redis数据结构及使用场景

String 普通的get和set,适用于简单的KV缓存 hash 常用命令hget,hset key=150 1 2 3 4 5 value={ 'id': 150, 'name': 'zhangsan', 'age': 20 } hash类的数据结构,主要是用来存放一些对象...

redis发布订阅

在日常开发中,由于redis是内存型db,成本会比较高,只有在要求实时性数据或者对查询响应要求很高的情况下才会选用。 像实时变动的排行榜这类数据,我就会选用redis中的zset数据结构,可以根据score值去进行排序。 再者,可以将redis当成一个消息队列,发布订阅这种方式来消耗队列中的任务。 接下来我就详细说明下我的消息队列的实现。 由于消息队列中不止存在一种消息,所以就根据topi...

生产上做报表遇到的sql问题

做报表的需求,需要统计线上某时间数据,时间一般用时间戳即毫秒值来做记录,但是跑数据的时候提示 BIGINT UNSIGNED value is out of range As of MySQL 5.5.5, overflow during numeric expression evaluation results in an error. For example, the largest ...

redis持久化机制

redis支持小量数据落地功能,但由于支持多种数据结构, 导致持久化到硬盘是一个难题。 我简单的介绍下常用的两种持久化方式: 定时快照方式(snapshot): 该持久化方式实际是在Redis内部一个定时器事件, 每隔固定时间去检查当前数据发生的改变次数与时间是否满足配置的持久化触发的条件, 如果满足则 通过操作系统fork调用来创建出一个子进程, 这个子进程默认会与父进程共享相同的地址空...

DDoS攻击概念以及防范

DDoS全称Distributed Denial of Service,即分布式拒绝服务攻击。 用一个很通俗的例子来说明下什么叫DDoS攻击。 3楼卫生间只有五个蹲位,来了五个社会人士把蹲位站了, 他们只是在里面抽烟而不干正事。恰巧,这时候你有内急,进卫生间就在门口等着,一直等, 如果不采取一些措施,你可能就。。。那么你有几种选择: ①叫物业加多几个坑位 ②去其他楼层找厕所 ③把他...

安装配置RocketMQ

我安装的版本是rocketmq-3.5.8。 该版本需要先编译,如果直接启动mqnamesrv, 则会提示Could not find or load main class com.alibaba.rocketmq.namesrv.NamesrvStartup。 编译需要用到的软件jdk1.8.0_144,git1.8.3.1,maven3.5.0,rocketmq-3.5.8。 先删除预...

tomcat的线程模型

配置 server.xml 文件当中的 修改tomcat的IO模型。 默认配置8.0 protocol=“HTTP/1.1” 8.0 之前是BIO,8.0之后是NIO。 BIO protocol=“org.apache.coyote.http11.Http11Protocol“ 该模式下每个请求都会创建一个线程,对性能开销大,不适合高并发场景。 NIO protocol...

redis的线程模型

首先说明,为什么redis的效率这么高? 单线程,避免了多线程切换的开销 内存操作 基于reactor模式的非阻塞io模型 在redis中将这种基于reactor模式开发的模式称为文件事件处理器。 简单说明下reactor模式: 在Reactor中,这些被拆分的小线程或者子过程对应的是handler,每一种handler会出处理一种event。 这里会有一个全局的管理者se...

NIO

linux的IO模型: 阻塞IO 非阻塞IO IO复用 信号驱动IO 异步IO IO和NIO的区别: IO面向流,NIO面向缓冲区 IO阻塞,NIO非阻塞 nio中channel和buffer channel可以理解为对socket的一种抽象, channel类似于流,可以读写到buffer中。 在nio中,使用buffer读写数据一般遵循以下四个步...