2 chris00012 chris00012 于 2016.05.03 12:41 提问

redis分布式锁的运用和理解 1C

redis是单进程单线程模式 ,为什么还需要分布式锁?跨jvm是指多个服务器上在运行同一个服务吗?
网上看了很多说跨jvm会需要锁 ,但还是不怎么理解

3个回答

Angelasan
Angelasan   2016.05.03 14:24

redis分布式锁和zookeeper分布式锁都在在企业服务中常用的知识。譬如:你有一个服务程序,需要部署在5台独立的机器上,才能避免高峰访问的压力。
试想用户查询query的推荐结果(经过复杂机器学习算法的计算)保留在机器1的缓存中,当新来的用户再次查询相同的query时,而服务访问的是机器2,那么机器2还需要重新计算推荐结果吗?当然不需要了,
只需要实时更新每台机器的redis缓存,就可以实现缓存信息互享,减少服务器的计算压力,提高访问的效率。当然redis缓存的更新就需要redis分布式锁,通过分布式锁锁定异步计算,监控缓存更新

CSDNXIAON
CSDNXIAON   2016.05.03 12:51

redis分布式锁
redis分布式锁-SETNX实现
Redis实现分布式锁
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

oyljerry
oyljerry   Ds   Rxr 2016.05.03 14:16

redis 3.0也有集群模式了,可以多个机器组成一个整体的cache

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
spring redis 分布式锁
直接上代码 1.Lock类 package com.example.util; /** * 全局锁,包括锁的名称 * Created by lp on 2017/5/9. */ public class Lock { private String name; private String value; public Lock(String name, St
Redis分布式锁思考
redis分布式锁
基于redis分布式锁实现“秒杀”
最近在项目中遇到了类似“秒杀”的业务场景,在本篇博客中,我将用一个非常简单的demo,阐述实现所谓“秒杀”的基本思路。 业务场景 所谓秒杀,从业务角度看,是短时间内多个用户“争抢”资源,这里的资源在大部分秒杀场景里是商品;将业务抽象,技术角度看,秒杀就是多个线程对资源进行操作,所以实现秒杀,就必须控制线程对资源的争抢,既要保证高效并发,也要保证操作的正确。 一些可能的实现 刚才提到
分布式锁的作用及实现(Redis)
一、什么是分布式锁?要介绍分布式锁,首先要提到与分布式锁相对应的是线程锁、进程锁。线程锁:主要用来给方法、代码块加锁。当某个方法或代码使用锁,在同一时刻仅有一个线程执行该方法或该代码段。线程锁只在同一JVM中有效果,因为线程锁的实现在根本上是依靠线程之间共享内存实现的,比如synchronized是共享对象头,显示锁Lock是共享某个变量(state)。进程锁:为了控制同一操作系统中多个进程访问某...
基于redis的分布式锁实现
关于分布式锁 很久之前有讲过并发编程中的锁并发编程的锁机制:synchronized和lock。在单进程的系统中,当存在多个线程可以同时改变某个变量时,就需要对变量或代码块做同步,使其在修改这种变量时能够线性执行消除并发修改变量。而同步的本质是通过锁来实现的。为了实现多个线程在一个时刻同一个代码块只能有一个线程可执行,那么需要在某个地方做个标记,这个标记必须每个线程都能看到,当标记不存在时可
基于Redis实现的分布式锁
基于Redis的分布式锁实现背景 根据redis的setnx命令实现只有一个客户端可以拿到锁; RedissonLock的分布式锁实现使用了lua脚本,这里提供一种不适用脚本实现的方法; 基本实现 使用redis的setnx命令,再加上一个过期时间防止死锁 缺点:不支持重入,不支持wait,如果调用unlock的时间>leaseTime,则会删除之后获得的锁; import redis.client
使用Redis实现分布式锁
1.实现分布式锁的几种方案     1.Redis实现   (推荐)     2.Zookeeper实现     3.数据库实现 Redis实现分布式锁 * * 在集群等多服务器中经常使用到同步处理一下业务,这是普通的事务是满足不了业务需求,需要分布式锁 * * 分布式锁的常用3种实现: * 0.数据库乐观锁实现 * 1.Redi
基于redis的分布式锁的实现
之前一直对分布式锁有所思考。一直觉得现在高性能的redis是个不错的选择; 关于分布式锁的思考 今天也尝试着写了一个基于redis的分布式锁工具 LockUtil.java package yyf.Jedis.toolsByRedis; import jav
Redis分布式锁的简单实现分析
一 前言 再看交易相关的代码时,发现了采用了Redislock,整理一下这块的知识点。 二  业务现状: 常见的分布式锁是为了解决不同进程需要互斥地访问共享资源。常见的业务场景有“秒杀”。 对于账单来说,存在个订单多个账单的情况,而且不同的业务线字段不同,不能依靠数据库两个字段简单的唯一性索引约束。 对性能要求高,允许偶发的失败。 三 Redis实现分析 首先是分布式锁几个关
基于Redis实现分布式锁
在很多互联网产品应用中,有些场景需要加锁处理,比如:秒杀,全局递增ID,楼层生成等等。大部分的解决方案是基于DB实现的,Redis为单进程单线程模式,采用队列模式将并发访问变成串行访问,且多客户端对Redis的连接并不存在竞争关系。其次Redis提供一些命令SETNX,GETSET,可以方便实现分布式锁机制。