1、在进行数据库操作的方法前先定义一个key值,并添加一个能区别每个key的标识

2、首先判断如果定义的key值存在的话,就直接return方法,如果不存在的话,就把key值放在jedisutil中,(此处即为该条数据加锁成功),同时要记得释放锁,用jedisUtil.expire方法定时释放锁。

3、经过第2步的操作后,不是return就是已经加锁成功,此时就可以进行数据库操作。但是调用完数据库后并成功获得数据库返回的值后,要记得手动释放锁,不然就会由上图等5分钟后自动释放。使用jedisUtil.del方法释放锁。

经过上述的3步后便可以完成一次锁数据库-数据库进行增删改差-解锁数据库的操作,使用jedisUtil工具类的作用是可以避免因为网卡、重复点击等误操作或者违规操作引起的多次调用数据库的情况,避免了数据库中的重复数据问题。

重要点及总结:

一、一定要用不同的标识对应不同的key,不能用同一个key操作所有的数据

二、有些管理系统可能有多个return,要记得在所有的return前都进行释放锁的操作

三、该方法仅仅适用于redis数据库

调用redis封装好的JedisUtils接口实现锁库的更多相关文章

  1. 用ladon框架封装Python为Webservice接口以及调用接口的方法

    一.用ladon框架封装Python为Webservice接口 功能实现的同时,希望将接口开放给别人,而封装python接口的一个再简单不过的框架Ladon,而且提供不同的协议,包括SOAP和Json ...

  2. 在这个应用中,我使用了 MQ 来处理异步流程、Redis 缓存热点数据、MySQL 持久化数据,还有就是在系统中调用另外一个业务系统的接口,对我的应用来说这些都是属于 RPC 调用,而 MQ、MySQL 持久化的数据也会存在于一个分布式文件系统中,他们之间的调用也是需要用 RPC 来完成数据交互的。

    在这个应用中,我使用了 MQ 来处理异步流程.Redis 缓存热点数据.MySQL 持久化数据,还有就是在系统中调用另外一个业务系统的接口,对我的应用来说这些都是属于 RPC 调用,而 MQ.MySQ ...

  3. [C#] 使用 StackExchange.Redis 封装属于自己的 Helper

    使用 StackExchange.Redis 封装属于自己的 Helper 目录 核心类 ConnectionMultiplexer 字符串(String) 哈希(Hash) 列表(List) 有序集 ...

  4. [C#] 使用 StackExchange.Redis 封装属于自己的 RedisHelper

    使用 StackExchange.Redis 封装属于自己的 RedisHelper 目录 核心类 ConnectionMultiplexer 字符串(String) 哈希(Hash) 列表(List ...

  5. springboot+redis+Interceptor+自定义annotation实现接口自动幂等

    前言: 在实际的开发项目中,一个对外暴露的接口往往会面临很多次请求,我们来解释一下幂等的概念:任意多次执行所产生的影响均与一次执行的影响相同.按照这个含义,最终的含义就是 对数据库的影响只能是一次性的 ...

  6. windows下使用c++调用redis

    不废话,unix下c++调用 redis可以看这个: http://blog.csdn.net/youngqj/article/details/8266177 ==================== ...

  7. python调用腾讯云短信接口

    目录 python调用腾讯云短信接口 账号注册 python中封装腾讯云短信接口 python调用腾讯云短信接口 账号注册 去腾讯云官网注册一个腾讯云账号,通过实名认证 然后开通短信服务,创建短信应用 ...

  8. 【数据库开发】windows下使用c++调用redis

    不废话,unix下c++调用 redis可以看这个: http://blog.csdn.net/youngqj/article/details/8266177 ==================== ...

  9. Javascript面向对象特性实现封装、继承、接口详细案例——进级高手篇

    Javascript面向对象特性实现(封装.继承.接口) Javascript作为弱类型语言,和Java.php等服务端脚本语言相比,拥有极强的灵活性.对于小型的web需求,在编写javascript ...

随机推荐

  1. P4294 [WC2008]游览计划 (斯坦纳树)

    题目链接 差不多是斯坦纳树裸题,不过边权化成了点权,这样在合并两棵子树时需要去掉根结点的权值,防止重复. 题目还要求输出解,只要在转移时记录下路径,然后dfs一遍就好了. #include<bi ...

  2. .Net界面开发必备!DevExpress Blazor UI全新组件助力界面开发

    行业领先的.NET界面控件DevExpress 正式发布了v19.1版本,DevExpress UI for Blazor/ Razor组件附带7个用户界面组件(包括Data Grid和Pivot G ...

  3. BOOST 解析,修改,生成xml样例

    解析XML 解析iworld XML,拿到entity和VisibleVolume的数据 int ParseiWorlds::readXML(const bpath &dir) { ptree ...

  4. 34. ClustrixDB 降低集群的容量-Flex down

    有时,可能需要减少集群的容量: 减少高峰事件后的运营成本 为其他目的分配服务器. 删除故障硬件.(参见删除ALTER CLUSTER以删除永久失败的节点.) 在ClustrixDB中缩小集群的过程很简 ...

  5. php大文件传输断点续传源码

    1.使用PHP的创始人 Rasmus Lerdorf 写的APC扩展模块来实现(http://pecl.php.net/package/apc) APC实现方法: 安装APC,参照官方文档安装,可以使 ...

  6. php+上传视频大文件

    理清思路: 引入了两个概念:块(block)和片(chunk).每个块由一到多个片组成,而一个资源则由一到多个块组成 块是服务端的永久数据存储单位,片则只在分片上传过程中作为临时存储的单位.服务端会以 ...

  7. 12.JSTL标签

    JSTL是一个不断完善的开源代码的JSP标签库,在JSP2.0中已将JSTL作为标准支持.使用JSTL可以取代在传统JSP程序中嵌入Java代码的做法,在一定程度上提高了代码的可维护性. JSTL有5 ...

  8. k8s集群管理注意要点【持续更新】

    1.编写pod yaml文件时绑定调度标签,必须要给指定节点绑定标签,否则无法调度到指定节点上,报错: Events: Type Reason Age From Message ---- ------ ...

  9. VMWare workstation12配置CentOS6.5虚拟机NAT网络以及虚拟机静态IP

    1.右键网络连接—>打开网络和共享中心—>更改适配器设置—>找到网络适配器VMware Virtual Ethernet Adapter for VMnet8—>如下图所示修改 ...

  10. PHP JSON数据 AJAX

    JSON数据的定义方式 //写入数据 var a = { code:"p001", name:"张三", shuzu:new Array(1,2,3,4), j ...