09 2020 档案
摘要:一、分布式锁 分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。 二、分布式锁的演进 业务:电商网站卖东西需要去减库存,本篇文章假设下的订单数量都为1; 第1版的代码: @Se
阅读全文
摘要:Redis的lua脚本 Redis在2.6推出了脚本功能,允许开发者使用 Lua 语言编写脚本传到 Redis 中执行。 1、使用lua脚本的优点: (1)减少网络开销:多次网络请求的操作,可以用一个请求完成,原先多次请求的逻辑放在redis服务器上完成。使用脚本,减少了网络往返时延。 (2)原子操
阅读全文
摘要:Redis 集群的扩容步骤: (1)master: 启动扩容的实例; 使用 add-node 命令,将Redis实例添加到集群中; 使用 reshard 命令,给新增加的实例分配 slot; (2)slave: 启动扩容的实例; 使用 cluster replicate 命令,将 slave 添加到
阅读全文
摘要:一、哨兵模式 在 redis3.0之前,redis使用的哨兵架构,它借助 sentinel 工具来监控 master 节点的状态;如果 master 节点异常,则会做主从切换,将一台 slave 作为 master。 哨兵模式的缺点: (1)当master挂掉的时候,sentinel 会选举出来一个
阅读全文