随笔分类 - Redis
摘要:https://blog.csdn.net/weixin_38569499/article/details/103720524
阅读全文
摘要:1、redis作用: 用于读数据库操作的缓存层,可以减少数据库的io,还能提升数据的io性能; 无法保证数据的acid 2、实现一致性方案: 要想保证强一致性就需要加锁,得不偿失了,保证最终一致性就好。 延迟双删方案是不对的,因为需要延迟几百毫秒,对于高并发系统是致命的,答了这种方案就直接挂了。 1
阅读全文
摘要:https://blog.csdn.net/dl962454/article/details/132766344
阅读全文
摘要:https://www.bmabk.com/index.php/post/166151.html
阅读全文
摘要:1、基于Redis的数据结构zset 用的redis的zset来计数,score字段寸时间戳,每次请求增加一条数据,并按score移除超时的数据。 最后在给整个key1加个过期时间 2、基于Redis的令牌桶算法 具体代码实现: https://blog.csdn.net/weixin_426456
阅读全文
摘要:https://xie.infoq.cn/article/d01329aceeed184a8e71575ff
阅读全文
摘要:https://www.bilibili.com/video/BV11N411H7HN/?spm_id_from=333.999.0.0&vd_source=a3fefff79a3be320da3db60b271f05c9
阅读全文
摘要:1、悲观锁: 执行操作前假设当前的操作肯定(或有很大几率)会被打断(悲观)。基于这个假设,我们在做操作前就会把相关资源锁定,不允许自己执行期间有其他操作干扰。Redis不支持悲观锁。Redis 作为缓存服务器使用时,以读操作为主,很少写操作,相应的操作被打断的几率较少。不采用悲观锁是为了防止降低性能
阅读全文
摘要:1、redis 是单线程的为什么还这么快 1)完全基于内存,绝大部分请求是纯粹的内存操作,非常快速。 2)数据结构简单,对数据操作也简单,Redis 中的数据结构是专门进行设计的。 3)采用单线程,避免了不必要的上下文切换和竞争条件,也不存在多进程或者多线程导致的切换而消耗 CPU,不用去考虑各种锁
阅读全文
摘要:缓存与数据库双写时的数据一致性问题:只要用缓存,就可能会涉及到缓存与数据库双存储双写,你只要是双写,就一定会有数据一致性的问题,那么你如何解决一致性问题? 一般来说,就是如果你的系统不是严格要求缓存+数据库必须一致性的话,缓存可以稍微的跟数据库偶尔有不一致的情况,最好不要做这个方案,读请求和写请求串
阅读全文
摘要:1、Redis 的并发竞争 Key :多个系统同时对一个 key 进行操作,但是最后执行的顺序和我们期望的顺序不同,这样也就导致了结果的不同! 2、解决方式: 分布式锁(zookeeper 和 redis 都可以实现分布式锁)。(如果不存在 Redis 的并发竞争 Key 问题,不要使用分布式锁,这
阅读全文
摘要:1、缓存雪崩:缓存同一时间大面积的失效,所以,后面的请求都会落到数据库上,造成数据库短时间内承受大量请求而崩掉。 解决办法: 事前:尽量保证整个 redis 集群的高可用性,发现机器宕机尽快补上。选择合适的内存淘汰策略。事中:本地ehcache缓存 + hystrix限流&降级,避免MySQL崩掉。
阅读全文
摘要:Redis 通过 MULTI、EXEC、WATCH 等命令来实现事务(transaction)功能。事务提供了一种将多个命令请求打包,然后一次性、按顺序地执行多个命令的机制,并且在事务执行期间,服务器不会中断事务而改去执行其他客户端的命令请求,它会将事务中的所有命令都执行完毕,然后才去处理其他客户端
阅读全文
摘要:1、redis 持久化机制:为了之后重用数据(比如重启机器、机器故障之后回复数据),或者是为了防止系统故障而将数据备份到一个远程位置,将内存中的数据写入到硬盘里面。 Redis的两种种持久化方式:快照(snapshotting,RDB)、只追加文件(append-only file,AOF)。 (1
阅读全文
摘要:1、redis 内存淘汰机制:MySQL里有2000w数据,Redis中只存20w的数据,如何保证Redis中的数据都是热点数据? http://download.redis.io/redis-stable/redis.conf redis 提供 6种数据淘汰策略: 1. volatile-lru:
阅读全文
摘要:1、设置过期时间功能:即对存储在 redis 数据库中的值可以设置一个过期时间。作为一个缓存数据库,这是非常实用的。如我们一般项目中的 token 或者一些登录信息,尤其是短信验证码都是有时间限制的,按照传统的数据库处理方式,一般都是自己判断过期,这样无疑会严重影响项目性能。我们 set key 的
阅读全文
摘要:一、redis概述 1、redis:简单来说 redis 就是一个数据库,不过与传统数据库不同的是 redis 的数据是存在内存中的,所以存写速度非常快,因此 redis 被广泛应用于缓存方向。另外,redis 也经常用来做分布式锁。redis 提供了多种数据类型来支持不同的业务场景。除此之外,re
阅读全文