随笔分类 - redis
摘要:分布式场景下锁失效的问题 单体锁 我们在库存中有五千个商品,然后我们的业务代码模拟一下从redis中获取库存数据,入库有库存则执行库存-1并设置回redis中。 @GetMapping("/test") public String test() { int stock = Integer.parse
阅读全文
摘要:缓存设计 缓存穿透 一般来说,我们的业务处理是,先查缓存,如果缓存中没有数据的话再查DB并将DB数据进行缓存并返回给用户。我们假定有个恶意用户,疯狂查询一些不存在的数据,这些数据肯定是在缓存层找不到的,然后这些请求就会打到数据库,这下缓存层就失去了存在的意义。 解决方案: 在接收到用户请求时,如果找
阅读全文
摘要:在redis集群中,从节点一般用于备份操作,主节点挂了,从节点顶上去,读写操作一般都是主读主写。 # 主从架构 用处:用于数据备份操作,主节点挂了之后可以有备份节点顶上去当主节点。 缺点:主节点挂了需要手动切换从节点为主节点。 原理: 从客户端首先会请求主节点拉取主节点的所有数据,主节点接收到请求之
阅读全文
摘要:IO 多路复用 客户端与服务端进行连接时会将fd注册到红黑树中。 服务端处于就绪状态时则会将fd注册到链表中。 服务端对客户端发送的命令进行执行时会从链表中拿取连接就行的socket,然后解析完成后进行返回,而不是客户端连接到服务端之后立即进行读写操作,因为建立连接之后不一定是处于就绪状态,可以立即
阅读全文
摘要:场景 如果redis没有对数据进行持久化的话,那么由于redis是将数据保存在内存中的,如果redis发生宕机时会使缓存数据丢失,由于启动redis之后数据丢失无法恢复,那么会导致缓存找不到直接访问数据库,如果数据库访问量过大时会产生缓存雪崩的问题。 RDB快照 根据配置文件的规则,将redis中的
阅读全文
摘要:String 最常用的各式,以k v格式进行存储 常用的场景在于对象json存储,以及对象缓存、分布式锁、计数器等。 SET KEY VALUE 存入字符串的键值对 MSET key value [key value ...]批量存储字符串键值对 SETNX key value 存入一个不存在的键值
阅读全文

浙公网安备 33010602011771号