分类: redis高级篇

缓存问题

缓存雪崩什么是缓存雪崩如果缓在某一个时刻出现大规模的key失效,那么就会导致大量的请求打在了数据库上面,导致数据库压力巨大,如果在高并发的情况下,可能瞬间就会导致数据库宕机。这时候如果运维马上又重启数据库,马上又会有新的流量把数据库打死。这就是缓存雪崩。 问题分析造成缓存雪崩的关键在于同一时间的大规模的key失效,为什么会出现这个问题,主要有两种可能:第一种是Redis宕机,第二种可能就是采用了相

分布式锁

分布式锁介绍当多个系统并发操作redis如何处理?主要方法是使用分布式锁,抢到锁的做set操作·。分布式锁实现方式分布式锁 为什么需要分布式锁? 1.避免不同的节点做相同的工作,比如发送短信通知。 2.避免同时操作一个数据导致数据正确性出现问题。比如多个节点操作同一个订单流程,还没付款已经结账了,或者同时操作一个库存,导致不一致。 2.分布式锁的特点 1.互斥性保证在不同节点不同线程的互斥。

redis主从复制

概述主从复制读写分离,info replicaiton查看信息,Master以写为主,slave以读为主,主要是读写分离和容灾恢复,注意一般配从不配主。 1.从库配置slaveof主库IP 主库端口 2.每次与master断开之后,都需要重新连接,除非你配置进redis.conf文件 3.一般一主2从 一主二从 1.拷贝多个redis.conf文件redis6379.confredis6380

redis集群

为什么要用redis集群? 1.容量内存不够,redis如何进行扩容? 2.并发写操作,redis如何分摊? 什么是集群? 1.redis集群实现了对redis的水平扩容即启动N个redis节点,将整个数据库分布存储在这N个节点中,每个节点存储总数的1/N。(降低内存压力,避免一台服务器写入爆掉内存) 2.redis集群通过分区(partition)来提供一定程度的可用性即集群中有一部分节点失

redis.conf解析

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210

redis事务

4.1 简介和sql的事务一样,本质是一组命令的集合,一个事务中所有命令都会序列化,按顺序地串行执行而不会被其他命令插入加塞.(要么一起成功,要么一起失败)一个队列中一次性、顺序性、排他性的执行一系列的命令 4.2 应用场景 秒杀系统网络上经常谈到的微信抢红包项目为例:1234567891011121.设计数据库字段红包id、发红包人、金额、数量、剩余金额、剩余数量、抢到人的名单、过期时间、添加时

redis发布订阅

5.1 简介进程间的一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。 5.2 基本命令12345671.subscribe c1 c2 c3一次订阅三个2.publish c2 hello-world这时订阅的用户就能收到消息3.psubscribe new* 订阅多个new1 2 3….一般不会用redis做消息中间键 5.3 应用场景 网站综合消息通知 网站更新消息通知

epoll多路复用

select概述通过轮询检查在文件描述符上设置的标识位来进行判断,select的轮询相当于在数据库中查找一条记录没有建立索引,对所有的socket 进行全部遍历,这对 CPU 是浪费的。另外 select 还有一个限制,对于单个进程所能打开的文件描述符最大只能是 1024,那么基于 select 的轮询技术最多也只能很好的处理 1000 并发的吞吐量,可以查看 上一个10年,著名的C10K并发连接

RDB&AOF

2 RDB持久化2.1 是什么?在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里(内存的东西不保存关机就没了,为什么redis开机还有数据?因为内存中的数据集快照被写进了磁盘,开机从磁盘加载回内存。) 2.2 相关配置12345678redis.conf的SNAPSHOTTINGafter 900 seconds if at l