jedis使用分布式锁
import redis.clients.jedis.Jedis;
public class A {
public static void main(String[] args) throws Exception {
Jedis jedis = new Jedis("localhost", 6379);
String set = jedis.set("key1", "value1", "NX", "PX", 5000);
//NX->不存在才进行set PX->毫秒 EX->秒
//set成功返回ok 失败返回null
System.out.println(set);
for (int i = 0; i < 10; i++) {
System.out.println(i);
String key1 = jedis.get("key1");
System.err.println(key1);
Thread.sleep(2000);
}
}
}
可避免
try {
jedis.setnx("key1", "value1");
int i = 1/0;
jedis.expire("key1", 5);
} catch (Exception e){
e.printStackTrace();
}
此方式造成的死锁问题~~
jedis使用分布式锁的更多相关文章
- Redis实战--Jedis实现分布式锁
echo编辑整理,欢迎转载,转载请声明文章来源.欢迎添加echo微信(微信号:t2421499075)交流学习. 百战不败,依不自称常胜,百败不颓,依能奋力前行.--这才是真正的堪称强大!!! 分布式 ...
- Redis(八)-- Redis分布式锁实现
一.使用分布式锁要满足的几个条件 系统是一个分布式系统(关键是分布式,单机的可以使用ReentrantLock或者synchronized代码块来实现) 共享资源(各个系统访问同一个资源,资源的载体可 ...
- redis 的惊群处理和分布式锁的应用例子
在并发量比较高的情况下redis有很多应用场景,提升查询效率,缓解底层DBio ,下面列举两个平时开发中应用过的两个例子,欢迎各位一起讨论改进. 1 . redis 惊群处理 1.1 方案的由来 Re ...
- Redis分布式锁 (图解-秒懂-史上最全)
文章很长,而且持续更新,建议收藏起来,慢慢读! 高并发 发烧友社群:疯狂创客圈(总入口) 奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : 极致经典 + 社群大片好评 < Java 高并发 三 ...
- Jedis使用总结【pipeline】【分布式的id生成器】【分布式锁【watch】【multi】】【redis分布式】(转)
前段时间细节的了解了Jedis的使用,Jedis是redis的java版本的客户端实现.本文做个总结,主要分享如下内容: [pipeline][分布式的id生成器][分布式锁[watch][multi ...
- 通过Redis 实现分布式锁_利用Jedis 客户端
前言 分布式锁一般有三种实现方式: 数据库乐观锁:2. 基于Redis的分布式锁:3. 基于ZooKeeper的分布式锁. 本篇博客将介绍第二种方式,基于Redis实现分布式锁. 虽然网上已经有各种介 ...
- redis击穿,穿透,雪崩,分布式锁,api(jedis,luttuce)
击穿:(redis做缓存用,肯定发生了高并发,到达数据库查询) 设置key 的过期时间,过期后没有这个key,找不到了,就穿过了(其中一个key过期导致并发访问数据库) LRU (LRU,即:最近最少 ...
- jedisLock—redis分布式锁实现
一.使用分布式锁要满足的几个条件: 系统是一个分布式系统(关键是分布式,单机的可以使用ReentrantLock或者synchronized代码块来实现) 共享资源(各个系统访问同一个资源,资源的载体 ...
- Redis_redis分布式锁-SETNX
因业务需要使用了redis的SETNX来实现分布式锁. 描述:Redis有一系列的命令,特点是以NX结尾,NX是Not eXists的缩写,如SETNX命令就应该理解为:SET if Not eXis ...
- 分布式缓存技术redis学习系列(五)——redis实战(redis与spring整合,分布式锁实现)
本文是redis学习系列的第五篇,点击下面链接可回看系列文章 <redis简介以及linux上的安装> <详细讲解redis数据结构(内存模型)以及常用命令> <redi ...
随机推荐
- 摹客RP,编辑界面缩放比例支持手动输入!
Hello,小伙伴们,又到了摹客的新功能播报时间. 本月更新,摹客RP编辑界面缩放比例支持手动输入,并对部分组件的默认样式及属性进行了优化:摹客DT率先上线了3款黄金比例图层,辅助设计师更高效绘图:针 ...
- mybatis原理探究
jdbc数据库运行流程: JDBC有哪三种statement接口: Statement 1.Statement接口提供了执行语句和获取结果的基本方法: 2.Statement继承自Wrapper:3. ...
- python 迁移虚拟环境
1.在源环境中获取包列表(新建文件夹whls) #cd 虚拟环境目录下的\scripts,cmd acitivate # 下载清单到requirements.txt,切换到whls目录 pip fre ...
- antVue--a-cascader级联组件使用触发loadData方法注意事项
<template> <a-cascader :options="options" :load-data="loadData" placeho ...
- 2022-3-16内部群每日三题-清辉PMP
1.项目经理正在为客户管理一个跨国项目,拟采用最新技术替换其电信基础设备.项目经理得知,在某些国家,必须遵循特定的环境规定来处置被替换的硬件.在制定商业论证时,未考虑到这些规定,项目经理应该怎么做? ...
- SQL中使用JOIN时,过滤条件的位置
sql语句 (SELECT * FROM t1 WHERE {subquery_where_condition}) a JOIN (SELECT * FROM t2 WHERE {subquery_w ...
- uniapp滚动组件scroll-view
//scroll-x="true" || scroll-y="true" <view class="scroll-view"> ...
- docker容器监控系统
Cadvisor+InfluxDB+Grafana Cadvisor Cadvisor是检测单节点资源信息的工具,提供了一个http接口的查询界面,可以和其他工具整合使用,Cadvisor既可以采集宿 ...
- c++基础技能练习详解(回文数,字符串计数,指针比大小,递归求和,类的应用)
//1. 调用函数实现判定用户输入的正整数是否为"回文数",所谓"回文数"是指正读反读都相同的数. (25分) bool hw(string s) { for ...
- 使用C++进行冒泡排序
#include "pch.h" #include <iostream> using namespace std;手动输入10个数,进行冒泡排序 int main() ...