redis
Csea_
这个作者很懒,什么都没留下…
展开
-
Mysql、Redis、Redisson分布式锁
Mysql 代码 ProductEntity selectLock(@Param("title") String title); <select id="selectLock" resultType="com.csea.lock.pojo.ProductEntity"> select * from product where title = #{title} for update </select> @RequestMapping("mysql/singleLock")原创 2020-07-15 15:45:11 · 285 阅读 · 0 评论 -
Redis的穿透、雪崩
穿透 穿透是指在缓存中没有的数据,有人恶意请求数据,导致跳过了redis,直接去请求数据库的数据,导致数据库压力过大宕机。比如请求id为8888的信息,但是没有8888的信息,这时候恶意请求会一直去数据库中查询数据。 预防 常用的方式是直接将为空的数据也存到缓存总,比如id为8888的在数据库中不存在,那也照样存入到缓存中,这样就会去请求缓存中的数据。 布隆过滤器 他是以一个二进制数组的形式存在...原创 2020-04-11 14:57:11 · 126 阅读 · 0 评论 -
Redis缓存过期处理、内存淘汰机制
Redis内部有两种缓存过期处理: 设置了expire的缓存过期之后,还是会占用内存,这是基于redis的两种删除缓存策略: 1. (主动)定期删除 定时检查redis中过期的key,如果过期了就可以删除,可以在conf中配置每秒检查的次数。 2. (被动)惰性删除 如果客户端来访问一个已经过期的key,redis会检查这个key是否过期,如果过期了就会返回nil。这个方式不会有太多的损耗,但是内...原创 2020-04-09 21:41:19 · 314 阅读 · 0 评论 -
Redis主从架构、以及无磁盘化的主从复制
Redis主从架构 主从架构也成为 水平横向扩展,读写分离架构 主(master)从(slave) 读的操作都丢给slave,写丢给master 1.slave会先去Ping master ,告诉master,我已经连接上了,你可以给我分派任务了 2.master这时候就会把数据给到slave,让他去做处理(数据复制,这是全量的复制) 3.这个数据就是RDB,他会把最新的数据从内存中拿出来,把最...原创 2020-04-07 21:39:37 · 191 阅读 · 0 评论