随笔分类 -  Redis

摘要:主从 提高读请求相应,无自动切换机制。 哨兵模式: sentinel, 哨兵是redis集群中非常重要的一个组件,主要有一下功能: 集群监控:负责监控redis master和slave进程是否正常工作。 消息通知:如果某个redis实例有故障,那么哨兵负责发送消息作为报警通知给管理员。 故障转移: 阅读全文
posted @ 2022-10-12 18:01 忱康 阅读(48) 评论(0) 推荐(0) 编辑
摘要:1.为什么需要主从同步 在使用redis服务的时候如果时单机服务,一旦单机服务宕机了,那么可能导致我们整个系统处于不可用状态,或者当系统的访问量大了以后单机的redis服务成功了整个系统的瓶颈,这时候就到了主从复制展示伸手的时候了.主从复制可以帮我们完成以下功能. 1.1 数据冗余:主从复制实现了数 阅读全文
posted @ 2022-10-12 15:04 忱康 阅读(283) 评论(0) 推荐(0) 编辑
摘要:一、Redis事务的概念Redis 事务的本质是一组命令的集合。事务支持一次执行多个命令,一个事务中所有命令都会被序列化。在事务执行过程,会按照顺序串行化执行队列中的命令,其他客户端提交的命令请求不会插入到事务执行命令序列中。总结说:redis事务就是一次性、顺序性、排他性的执行一个队列中的一系列命 阅读全文
posted @ 2022-10-11 17:05 忱康 阅读(26) 评论(0) 推荐(0) 编辑
摘要:Redis分布式锁通过setNX,单线程处理网络请求,不需要考虑并发安全性所有服务节点设置相同的key,返回为0,则锁获取失败 setnx问题: 1.死锁: 持有锁的应用崩溃,无法释放锁,其他应用也不能再获取锁。 早期版本在设置锁时不能同时设置超时参数,如果设置锁后还没设置超时就出现宕机,就会死锁问 阅读全文
posted @ 2022-10-09 16:32 忱康 阅读(76) 评论(0) 推荐(0) 编辑
摘要:文章目录1.RDB的基本概念2.RDB的触发方式2-1、配置文件2-2、手工触发2-3、其他触发方式3.bgsave的工作流程3-1、什么是cow3-2、Redis面临的问题3-3、Redis的cow 因为有小伙伴问Redis的bgsave命令里面,cow(copy on write)到底是如何实现 阅读全文
posted @ 2022-09-30 17:41 忱康 阅读(275) 评论(0) 推荐(0) 编辑
摘要:AOF和RDB是两种redis持久化的机制。 RDB:RDB是将支持当前数据的快照存成一个数据文件的持久化机制。1.在生成快照时,将当前进程fork出一个子进程.2.然后在子进程中循环所有的数据,将数据写入到二进制文件中。3.当子进程将快照写入临时文件完毕后,用临时文件替换原来的快照文件,然后子进程 阅读全文
posted @ 2022-09-29 18:34 忱康 阅读(62) 评论(0) 推荐(0) 编辑
摘要:缓存雪崩 缓存雪崩是指在同一时段大量的缓存key同时失效或者Redis服务宕机,导致大量请求到达数据库,带来巨大压力。 目前电商首页以及热点数据都会缓存,一般缓存都是定时刷新或者查不到之后更新缓存。定时任务刷新就会存在一个问题。假如,所有的缓存数据失效时间都是12个小时,中午12点刷新缓存,双十一零 阅读全文
posted @ 2022-09-29 11:49 忱康 阅读(35) 评论(0) 推荐(0) 编辑
摘要:如何保存更多的数据 为了保存更多的数据,通常使用大内存云主机和切片集群两种方法。实际上,这两种方法分别对应着redis应对数据量增多的两种方法:纵向扩展和横向扩展。 纵向扩展:升级单个redis实例的资源配置,包括增加内存容量、增加磁盘容量、使用更高配置的cpu。就像下图中,原来的实例内存是8GB, 阅读全文
posted @ 2022-09-28 11:58 忱康 阅读(115) 评论(0) 推荐(0) 编辑
摘要:上一节,了解了哨兵机制,它可以实现主从库的自动切换。通过部署多个实例,就形成了哨兵集群。哨兵集群中的多个实例共同判断,可以降低对主库下线的误判率。 但是,还有一个要考虑的问题:如果有哨兵实例运行时发生了故障,主从库还能正常切换吗? 实际上,一旦多个实例组成了哨兵集群,即使有哨兵实例出现故障挂掉了,其 阅读全文
posted @ 2022-09-27 16:53 忱康 阅读(131) 评论(0) 推荐(0) 编辑
摘要:哨兵其实就是一个运行在特殊模式下的redis进程,主从库实例运行的同时,它也在运行。哨兵主要负责的就是三大任务:监控、选主和通知。 我们先看监控。监控是指哨兵进程在运行时,周期性地给所有地主从库发送PING命令,检测他们是否仍然在线运行。如果从库没有在规定时间内响应哨兵地PING命令,哨兵就会把它标 阅读全文
posted @ 2022-09-27 14:25 忱康 阅读(111) 评论(0) 推荐(0) 编辑
摘要:Redis 缓存删除策略分为定时删除、定期删除与惰性删除。前两个是主动删除,后一个是被动删除。 1 定时删除 为 key 设置一个过期时间,时间一到,由定时器任务删除这个 key。 优点:节省内存,因为 key 一过期,就会被立即删除。 缺点:CPU压力大,因此相当于 CPU 在轮询判断当前时间是否 阅读全文
posted @ 2022-09-26 16:35 忱康 阅读(620) 评论(0) 推荐(0) 编辑
摘要:1.命令执行基于内存操作,一条命令在内存里操作的时间是几十纳秒 2.命令执行是单线程操作,没有线程切换开销 3.基于IO多路复用机制提升Redis的I/O利用率(Linux使用epoll) 4.高效率的数据存储结构:全局hash表以及多种高效数据结构,比如:跳表,压缩列表,链表等 阅读全文
posted @ 2022-09-23 11:40 忱康 阅读(10) 评论(0) 推荐(0) 编辑
摘要:Redis 6.0 版本之前的单线程指的是其网络I/O和键值对读写是由一个线程完成的 Redis 6.0引入的多线程指的是网络请求过程采用了多线程,而键值对读写命令仍然是单线程处理的,所以Redis依然是并发安全的。 持久化,集群数据同步等,其实是由额外的线程执行的。 总结:6.0网络I/O是多线程 阅读全文
posted @ 2022-09-21 16:36 忱康 阅读(40) 评论(0) 推荐(0) 编辑