在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计数器相关推荐

  1. redis mysql 原子计数器_redission计数器实现,redisTemplate计数器

    在redission 2.9.0版本之前是有BUG,在实现下面代码时,第一次是成功的,但是在第二次就会失败: RedissonClient client;//client参考别的demo RMapCa ...

  2. 使用Verilog语言描述计数器——脉动计数器;脉动计数器具有减法计数功能。采用模块设计和行为级设计方法。

    使用Verilog语言描述计数器--脉动计数器. 内容说明: 本次设计的计数器属于脉动计数器.使用Verilog语言设计,并且设计方法采用模块设计和简单的行为级设计.会有这两种设计的对比测试.最后,会 ...

  3. redis命令和Spring 的RedisTemplate操作对应关系

    前言 有时候熟悉了redis命令,但是用到spring的RedisTemplte的时候就又糊涂了,命令和操作是谁对谁的,我就有点晕了,所以花了点时间整理了一下. 首先,redis命令执行可以在本地环境 ...

  4. 代码示例:使用redis计数来控制单位时间内对某接口的访问量

    控制单位时间内接口的访问量 使用redis计数来控制单位时间内对某接口的访问量,防止刷验证码接口之类的. 使用自定义注解的方式,在需要被限制访问频率的方法上加注解即可控制. 看实现方式,基于sprin ...

  5. 用74ls90组成二十四进制计数器_减法计数器的组成以及原理

    异步二进制减法计数器如图1-1所示 减法计数器的结构原理 1-1减法计数器的结构原理 该计数器是一个3位二进制异步减法计数器,它与前面介绍过的3位二进制异步加法计 数器一样,是由3个JK触发器组成,其 ...

  6. 同步计数器与异步计数器的区别,以及4040计数器的使用

    目录 一.4040计数器原理 二.分类 1.异步计数器与同步计数器 三.应用 一.4040计数器原理 4040是由T触发器组成的而精致计数器,主要用于分频和计数. 4040内部有12个计数级,每个计数 ...

  7. 七种计数器总结(格雷码计数器、环形计数器、约翰逊计数器、FLSR、简易时分秒数字秒表|verilog代码|Testbench|仿真结果)

    七种计数器总结 一.可复位/置数计数器 1.1 可复位/置数计数器 1.2 Verilog代码 1.3 Testbench 1.4 仿真结果 二.双向(可加可减)计数器 2.1 双向(可加可减)计数器 ...

  8. 分别设计网页访问计数器,会话计数器,访问网站计数器。

    张继军 董卫 <java web 应用开发技术与实案列教程>课后习题之第三章第7题 网页访问计数器count1.jsp 会话计数器count2.jsp 访问网站访问计数器count3.js ...

  9. 74192减法计数器原理图_趣味学习三菱PLC之定时器和计数器|定时器|三菱汽车|计数器|继电器|plc...

    小时候总想着,自己要是可以控制时间就好了,给时间按下暂停键,然后把班里的那个死对头打一顿哈哈哈哈哈嗝,做梦呢.虽然我不可以控制时间,但是我可以通过定时器控制PLC的程序执行呀,这也是从另一方面实现我控 ...

最新文章

  1. np.eye解释较好的
  2. oracle: 在sqlplus中,执行sql语句
  3. np.random.randint产生一个范围内的数据
  4. C语言高级编程:const限定函数形参
  5. pythonmatplot可视化_python:matplotlib基础数据可视化,pythonmatplotlib
  6. Vue报错'Do not use built-in or reserved HTML elements as component id:解决方法
  7. 全国计算机二级模拟考试软件,全国计算机等级考试模拟考试软件
  8. 示波器探头的 x1x10衰减、补偿校准手法
  9. 微信查询四六级成绩代码
  10. Spring Boot项目引入日志LogBack(Sif4j),将项目日志输出到文件中。
  11. 软件工程专业四个方向
  12. 千万别再乱点黄色APP了!
  13. 程序员直男也有的浪漫,快来给朋友制作一款定时微信推送服务吧
  14. C::Mat取出指定区域的方法
  15. excel二进制移位运算_Excel揭秘13:在Excel中实现位运算
  16. [双板滑雪]教学视频和技术贴精选
  17. 安装试用国产系统 ——中标麒麟V7.0
  18. 程序员获取编程灵感的10种方式
  19. linux基础知识(持续更新)
  20. Hello CTP(五)——CTP仓位计算

热门文章

  1. php处理form多文件上传,ajax利用FormData、FileReader实现多文件上传php获取
  2. DVWA-SQL注入
  3. 浅析bootstrap原理及优缺点
  4. error_reporting()的用法
  5. 编写Web前端代码的注意事项
  6. 处理Excel,填充空白区域
  7. Linux下编译Jsoncpp
  8. Linux下的图形库curses写贪吃蛇,酷
  9. 解剖8051内核如何进行多任务切换
  10. Linux shell sed awk