玖叶教程网

前端编程开发入门

Redis应用篇(众星追月):分布式锁

本文将介绍Redis高频使用的一个场景——

redis 底层实现逻辑,适用场景,并发举例,

Redis是一种高性能的键值存储系统,它的底层实现逻辑主要包括以下几个关键组件:

  1. 内存数据库:Redis将所有数据存储在内存中,这使得它能够提供非常高的读写性能。所有的数据都被保存在一个称为"键空间"的字典结构中,每个键都唯一标识一个值。

Redis分布式锁:集群定时任务的抢单神器

有这样一种需求,程序中需要一个定时任务(使用Cron处理定时),但是服务是集群部署的,这种情况就会造成重复执行,如果代码写的不够严谨,甚至会生成重复数据。

为避免这种情况,有3种方案,一是单机部署(缺点是机器挂了怎么办?),一是将定时任务暴露为HTTP服务,供外界(某定时任务)调用(缺点是增加了系统复杂性,定时任务的执行权只是交了出去而已),最佳选择就是每个服务都能自己判断出只执行一次就好了。

使用过Redis,我竟然还不知道Rdb

使用过Redis,那就先说说使用过那些场景吧

字符串缓存

  1. //举例
  2. $redis->set();
  3. $redis->get();
  4. $redis->hset();

图解 Redis 分布式锁,写得太好了

聊一聊业务中Redis锁的实现

背景

redis击穿,穿透,雪崩以及解决方案

1 击穿:

二、使用Redis单实例实现分布式锁

一、前言

在同一个jvm进程中时,可以使用JUC提供的一些锁来解决多个线程竞争同一个共享资源时候的线程安全问题,但是当多个不同机器上的不同jvm进程共同竞争同一个共享资源时候,juc包的锁就无能无力了,这时候就需要分布式锁了。常见的有使用zk的最小版本,redis的set函数,数据库锁来实现,本节我们谈谈Redis单实例情况下使用set函数来实现分布式锁。

Redis学习-分布式锁,分五个阶段详细讲解

redis 的set命令

redis中文官方文档http://www.redis.cn/commands/set.html

先了解一下命令set命令的NX(not exist)指令后续有用:NX(not exist)只有key不存在的时候再设置锁,并且它是原子性的

Redis介绍与使用

一.使用

1.启动:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言