redis 获取自增数
时间:2019-09-27
本文章向大家介绍redis 获取自增数,主要包括redis 获取自增数使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
近期,有一个项目需要用到数字的自增整数,范围是0-199999,但公司数据库是mongodb、同时装有mysql、redis等存储数据的这些数据库,其中redis是集群模式,mongodb是paa( mongo节点是primary arbit arbit),毫无疑问,这需要处理高并发问题。公司的项目同时也是多节点模式。这样就决定了自写高并发自增函数不可以,起初我把方向转向了mongodb上,同时也找到了对应的方法名和调用方式。
本来想着可以比较顺利的解决,但事与愿违,mongodb上执行操作,数据显示正常。如下图:
但是在java 调用后发现:
MongoTemplate mongoTemplate = new MongoTemplate(new Mongo("XXXXIP",27017),"mongodbTest"); // MongoTemplate mongoTemplate = GetApplicationContextBean.getMongoTemplate(); Update update = new Update(); update.inc("sequence_value",1); Query query =new Query(); query.addCriteria(new Criteria("_id").is("productid")); FindAndModifyOptions options = new FindAndModifyOptions(); // 先查询,如果没有符合条件的,会执行插入,插入的值是查询值 + 更新值 options.upsert(true); // 返回当前最新值 options.returnNew(true); Mycol advuser = mongoTemplate.findAndModify(query, update, Mycol.class, "mycol");
结果Test后发现执行不了....报超时.....处理了很长时间任然没解决掉。
毅然决定放弃该方案,寻找新出路,无意间发现redis也可以实现自增序列功能,顿时心里一顿欢喜。那就开始,不多说,全程在集群类中找到这个incr方法
然后写Test类测试是否满足并发操作:
结果:
符合预期。就这样。
原文地址:https://www.cnblogs.com/focusHots/p/11598916.html
- 通过SmtpClient发送Exchange会议邮件
- Microsoft training Kits
- C#与yaml解析
- WordPress中的jQuery库不起作用的相关问题
- 人工智能时代家长不必做“虎妈”
- WCF 消息帧格式
- C#以post方式调用struts rest-plugin service的问题
- Web前端开发初级阶段需要学习的知识有哪些?
- 作为TensorFlow的底层语言,你会用C+构建深度神经网络吗?
- 企业应用中使用Silverlight 3
- oracle:db-link使用
- 5个炫酷的Python工具,你都用过么?
- 保护ASP.NET 应用免受 CSRF 攻击
- .NET:Entity Framework 笔记
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- LeetCode题目22:括号生成
- OpenGL ES 3.0 | 着色器编译器
- LeetCode题目23:合并K个排序链表
- LeetCode题目24:两两交换链表中的节点
- 最难链表题——LeetCode题目25:K 个一组翻转链表
- LeetCode题目26:删除排序数组中的重复项
- PCA算法原理及实现
- LeetCode题目27:移出元素
- LeetCode题目28:实现strStr()
- LeetCode题目29:两数相除
- LeetCode题目30:串联所有单词的子串
- LeetCode题目31:下一个排列
- LeetCode题目33:搜索旋转排序数组
- LeetCode题目34:在排序数组中查找元素的第一个和最后一个位置
- LeetCode题目35:搜索插入位置