1.普通操作
2. 发布订阅
上图为发布订阅的简单示例,当使用集群模式的时候,情况就会比较复杂,如下图:
由于频道不同于Key,无法进行slot计算,所以进行订阅的时候无法计算具体的Redis节点,所以只能在随机的节点进行订阅。当发布消息时,会进行集群之间的同步,最终每个节点都会收到发布的消息,然后将消息发送给本地的订阅者。
3. 分布式锁
redis分布式锁不是redis的原生功能,而是在org.redisson.redisson包中实现的。在此包中,通过将多条redis命令组装成一条Lua脚本命令来实现,在Redis服务端对Lua脚本的执行是原子性的,所以很容易完成同步操作。当加锁失败时,会对相应的锁进行订阅,当发现锁释放时,再次尝试进行加锁操作。