Redis
文章平均质量分 76
Mr.VK
这个作者很懒,什么都没留下…
展开
-
基于 Redis 的 JWT令牌失效方案
当用户登录状态到登出状态时,对应的JWT的令牌需要设置为失效状态,这时可以使用基于 Redis 的黑名单方案来实现JWT令牌失效。原创 2024-03-04 16:47:39 · 1502 阅读 · 0 评论 -
【Redis】Redis 实现分布式Session
Cookie 保存在客户端浏览器中,而 Session 保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上,这就是 Session。客户端浏览器再次访问时只需要从该 Session 中查找该客户的状态就可以了。在实际工作中我们建议使用外部的缓存设备来共享 Session,避免单个服务器节点挂掉而影响服务,共享数据都会放到外部缓存容器中。原创 2024-02-29 10:15:10 · 1151 阅读 · 0 评论 -
【Redis】RedisTemplate和StringRedisTemplate的区别
RedisTemplate 看这个类的名字后缀是 Template ,如果了解过 Spring 如何连接关系型数据库的,大概不会难猜出这个类是做什么的 ,它跟 JdbcTemplate 一样封装了对Redis的一些常用的操作,当然 StringRedisTemplate 跟 RedisTemplate 功能类似那么肯定就会有人问,为什么会需要两个Template呢,一个不就够了吗?,如果需要自定义序列化配置,可以自己写一个 RedisTemplate 的Bean,来完成配置。那么就可以得出一个结论,原创 2024-02-29 10:24:12 · 2423 阅读 · 0 评论 -
【Redis】什么是缓存雪崩,如何预防缓存雪崩?
如果缓存集中在一段时间内失效,也就是通常所说的热点数据集中失效 (一般都会给缓存设定一个失效时间,过了失效时间后,该数据库会被缓存直接删除,从而一定程度上保证数据的实时性),发生大量的缓存穿透,造成大量的查询要查询数据库,这就造成了缓存雪崩,可能会导致数据库崩溃。如果缓存中间件宕机,当然可以对缓存中间件做高可用集群来避免。原创 2023-08-19 23:44:09 · 830 阅读 · 0 评论 -
【Redis】什么是缓存击穿,如何预防缓存击穿?
缓存击穿是指一个 Key 非常热点,大并发集中对这一个点进行访问,当这个Key 在失效的瞬间,持续的大并发就会穿破缓存,直接请求数据库。缓存击穿和缓存雪崩的区别在于,缓存击穿是针对某一个 Key缓存而言,缓存雪崩则是很多 Key。一般的网站很难有某个数据达到缓存击穿的级别,一般是热门网站的秒杀或爆款商品,才有可能发生这种情况。当然,这时把这种商品设置成永不过期或者过期时间超过抢购时段是一种很好的避免发生缓存击穿的方式,前提是这时应用系统不需要考虑数据可能的不一致性问题。原创 2023-08-19 23:43:29 · 643 阅读 · 0 评论 -
【Redis】什么是缓存穿透,如何预防缓存穿透?
但这样做有一定的弊端,就是当这个查询有数据时,在一定时间内得到的结果仍然是空,所以这个空结果的数据它的过期时间应该要设置得短一些,让它能得到自动剔除;空值缓存,也就保存了更多的键值,消耗了更多的内存空间,如果是外部攻击大量的空值缓存,会消耗掉所有的内存空间,导致系统崩溃。缓存穿透是指查询一个一定不存在的数据,由于缓存中不存在,这时会去数据库查询查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,这就造成缓存穿透。简单来说,就是访问业务系统不存在的数据,就可能会造成缓存穿透。原创 2023-08-19 23:41:34 · 1021 阅读 · 0 评论 -
【Redis】Redis中的布隆过滤器
布隆过滤器的原理其实非常简单,就是bitmap + 多重hash,主要优势就是利用非常小的空间就可以实现在大规模数据下快速判断某一对象是否存在,缺点是存在误判的可能,但不会漏判,也就是存在的对象一定会判断为存在,而不存在的对象会有较低的概率为误判为存在,且不支持对象的删除,因为会增加误判的概率。最典型的使用是解决缓存穿透的问题。原创 2023-08-19 22:54:36 · 558 阅读 · 0 评论 -
【Redis】Redisson分布式锁原理与使用
Redisson - 是一个高级的分布式协调Redis客服端,能帮助用户在分布式环境中轻松实现一些Java的对象,Redisson、Jedis、Lettuce 是三个不同的操作 Redis 的客户端,Jedis、Lettuce 的 API 更侧重对 Reids 数据库的 CRUD(增删改查),而 Redisson API 侧重于分布式开发。GitHub地址:https://github.com/redisson/redissonre。原创 2023-08-19 22:20:38 · 587 阅读 · 0 评论 -
【Redis】Redis分布式锁
分布式应用进行逻辑处理时经常会遇到并发问题。如果一个操作要修改用户的状态。修改状态需要先读出用户的状态,在内存里进行修改,改完了再存回去。如果这样的操作同时进行,就会出现并发问题,因为“读取”和“保存状态”这两个操作不是原子操作。。这个时候就要使用到分布式锁来限制程序的并发执行。Redis 分布式锁使用得非常广泛,它是面试的重要考点之一,很多同学都知道这个知识,也大致知道分布式锁的原理,但是具体到细节的掌握上,往往并不完全正确。原创 2023-08-18 22:56:57 · 398 阅读 · 0 评论 -
【Redis】Redis哨兵模式
Redis 可以存在多台服务器,并且实现了主从复制的功能。哨兵模式是一种特殊的模式,在 Redis 中哨兵是一个独立的进程。其原理是哨兵通过发送命令,等待 Redis 服务器响应,从而监控运行的多个 Redis 实例是否可以正常工作,如下图所示。通过发送命令,让 Redis 服务器返回其运行状态,包括主服务器和从服务器。当哨兵监测到主机出现故障后,会自动将其中一台从服务器切换成主服务器,然后通过发布订阅模式通知其他的从服务器,修改配置文件,让它们切换新的主服务器。原创 2023-08-18 22:21:47 · 624 阅读 · 0 评论 -
【Redis】Redis 的主从同步
很多企业都没有使用 Redis 的集群,但是至少都做了主从。有了主从,当主节点(Master) 挂掉的时候,运维让从节点 (Slave) 过来接管,服务就可以继续,否则主节点需要经过数据恢复和重启的过程,这就可能会拖延很长的时间,从而影响线上业务的持续服务。尽管 Redis 的性能很好,但是有时候依旧满足不了应用的需要,比如过多的用户进入主页.导致 Redis 被频繁访问,此时就存在大量的读操作。原创 2023-08-18 00:22:57 · 2429 阅读 · 0 评论 -
【Redis】Redis的持久化(备份)
Redis的数据全部在内存里,如果突然宕机,数据就会全部丢失,因此必须有一种机制来保证Redis的数据不会因为故障而丢失,这种机制就是Redis的持久化机制。原创 2023-08-16 23:30:38 · 916 阅读 · 0 评论 -
【Redis】Redis中大key怎么处理?
有时候会因为业务人员使用不当,在 Redis 实例中形成了很大的对象,比如一个很大的 hash 或一个很大的zset,都是可能出现的。这样的对象给 Redis 的集群数据迁移带来了很大的问题,因为在集群环境下,如果某个 key 太大,会导致数据迁移卡顿。另外在内存分配上,如果一个 key 太大,那么当它需要扩容时,会一次性申请更大的一块内存,这也会导致卡顿。如果这个大 key 被删除,内存会被一次性回收,卡顿现象也会再次产生。原创 2023-08-15 00:10:26 · 705 阅读 · 0 评论