redis 计数 java_redission计数器实现,redisTemplate计数器
在redission 2.9.0版本之前是有BUG,在实现下面代码时,第一次是成功的,但是在第二次就会失败:
RedissonClient client;//client参考别的demo
RMapCache mapCache = client.getMapCache("nameSpace");
mapCache.putIfAbsent("redisKey", 0, 1, TimeUnit.DAYS);//当不存在redisKey时,就放置这个redis,存在则不放置
在redission 2.9.0(3.4.1)版本之后修复BUG,多次操作是成功的:
RedissonClient client = RedissonHolder.getClient();//具体实现参考别的demo
RMapCache mapCache = client.getMapCache("nameSpace",IntegerCodec.INSTANCE);
String redisKey = channel + "-" + userId;
mapCache.putIfAbsent("redisKey", 0, 1, TimeUnit.DAYS);
logger.info("获取redis计数器:{}", redisKey);
int incr = mapCache.addAndGet(redisKey, 1);//加1并获取计算后的值
参考pom:
org.redisson
redisson
3.4.1
可参考redis demo:
import java.io.IOException;
import java.io.InputStream;
import java.util.ResourceBundle;
import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class RedissonHolder {
private static final Logger LOGGER = LoggerFactory.getLogger(RedissonHolder.class);
private static final RedissonHolder HOLDER = new RedissonHolder();
private RedissonClient redisson;
private RedissonHolder() {
String location = ResourceBundle.getBundle("redisson").getString("redisson.json.location");
InputStream inputStream = RedissonHolder.class.getClassLoader().getResourceAsStream(location);
Config config = null;
try {
config = Config.fromJSON(inputStream);
} catch (IOException e) {
LOGGER.error("获取Redisson配置文件失败", e);
}
this.redisson = Redisson.create(config);
}
public static RedissonClient getClient() {
return HOLDER.redisson;
}
}
redisson.properties(等号后面全部换成一行) :
redisson.json.location ={"singleServerConfig":{"idleConnectionTimeout":10000,
"pingTimeout":1000,
"connectTimeout":10000,
"timeout":5000,
"retryAttempts":5,
"retryInterval":1500,
"reconnectionTimeout":3000,
"failedAttempts":3,
"password":"root",
"subscriptionsPerConnection":5,
"clientName":null,
"address":"redis://my.redis.com:6379",
"subscriptionConnectionMinimumIdleSize":1,
"subscriptionConnectionPoolSize":50,
"connectionMinimumIdleSize":10,
"connectionPoolSize":64,
"database":0,
"dnsMonitoring":false,
"dnsMonitoringInterval":5000
},
"threads":0,
"nettyThreads":0,
"codec":null,
"useLinuxNativeEpoll":false
}
基于 springboot 的 redisTemplate计数器
redisTemplate基本配置参考 http://www.cnblogs.com/tietazhan/p/7479585.html
然后就可以直接使用内部函数
redisTemplate.opsForHash().increment(H var1, HK var2, long var3);
第一个为缓存key值,第二个为hashKey值,第三个为增量值。
redis 计数 java_redission计数器实现,redisTemplate计数器相关推荐
- redis mysql 原子计数器_redission计数器实现,redisTemplate计数器
在redission 2.9.0版本之前是有BUG,在实现下面代码时,第一次是成功的,但是在第二次就会失败: RedissonClient client;//client参考别的demo RMapCa ...
- 使用Verilog语言描述计数器——脉动计数器;脉动计数器具有减法计数功能。采用模块设计和行为级设计方法。
使用Verilog语言描述计数器--脉动计数器. 内容说明: 本次设计的计数器属于脉动计数器.使用Verilog语言设计,并且设计方法采用模块设计和简单的行为级设计.会有这两种设计的对比测试.最后,会 ...
- redis命令和Spring 的RedisTemplate操作对应关系
前言 有时候熟悉了redis命令,但是用到spring的RedisTemplte的时候就又糊涂了,命令和操作是谁对谁的,我就有点晕了,所以花了点时间整理了一下. 首先,redis命令执行可以在本地环境 ...
- 代码示例:使用redis计数来控制单位时间内对某接口的访问量
控制单位时间内接口的访问量 使用redis计数来控制单位时间内对某接口的访问量,防止刷验证码接口之类的. 使用自定义注解的方式,在需要被限制访问频率的方法上加注解即可控制. 看实现方式,基于sprin ...
- 用74ls90组成二十四进制计数器_减法计数器的组成以及原理
异步二进制减法计数器如图1-1所示 减法计数器的结构原理 1-1减法计数器的结构原理 该计数器是一个3位二进制异步减法计数器,它与前面介绍过的3位二进制异步加法计 数器一样,是由3个JK触发器组成,其 ...
- 同步计数器与异步计数器的区别,以及4040计数器的使用
目录 一.4040计数器原理 二.分类 1.异步计数器与同步计数器 三.应用 一.4040计数器原理 4040是由T触发器组成的而精致计数器,主要用于分频和计数. 4040内部有12个计数级,每个计数 ...
- 七种计数器总结(格雷码计数器、环形计数器、约翰逊计数器、FLSR、简易时分秒数字秒表|verilog代码|Testbench|仿真结果)
七种计数器总结 一.可复位/置数计数器 1.1 可复位/置数计数器 1.2 Verilog代码 1.3 Testbench 1.4 仿真结果 二.双向(可加可减)计数器 2.1 双向(可加可减)计数器 ...
- 分别设计网页访问计数器,会话计数器,访问网站计数器。
张继军 董卫 <java web 应用开发技术与实案列教程>课后习题之第三章第7题 网页访问计数器count1.jsp 会话计数器count2.jsp 访问网站访问计数器count3.js ...
- 74192减法计数器原理图_趣味学习三菱PLC之定时器和计数器|定时器|三菱汽车|计数器|继电器|plc...
小时候总想着,自己要是可以控制时间就好了,给时间按下暂停键,然后把班里的那个死对头打一顿哈哈哈哈哈嗝,做梦呢.虽然我不可以控制时间,但是我可以通过定时器控制PLC的程序执行呀,这也是从另一方面实现我控 ...
最新文章
- np.eye解释较好的
- oracle: 在sqlplus中,执行sql语句
- np.random.randint产生一个范围内的数据
- C语言高级编程:const限定函数形参
- pythonmatplot可视化_python:matplotlib基础数据可视化,pythonmatplotlib
- Vue报错'Do not use built-in or reserved HTML elements as component id:解决方法
- 全国计算机二级模拟考试软件,全国计算机等级考试模拟考试软件
- 示波器探头的 x1x10衰减、补偿校准手法
- 微信查询四六级成绩代码
- Spring Boot项目引入日志LogBack(Sif4j),将项目日志输出到文件中。
- 软件工程专业四个方向
- 千万别再乱点黄色APP了!
- 程序员直男也有的浪漫,快来给朋友制作一款定时微信推送服务吧
- C::Mat取出指定区域的方法
- excel二进制移位运算_Excel揭秘13:在Excel中实现位运算
- [双板滑雪]教学视频和技术贴精选
- 安装试用国产系统 ——中标麒麟V7.0
- 程序员获取编程灵感的10种方式
- linux基础知识(持续更新)
- Hello CTP(五)——CTP仓位计算