今天在写短信接口时候,要把验证码存到缓存里面。因为之前别人已经写的有案例,按照之前写的,获取 值、存到数据库,存到redis。 因为有过期时间,需要传过期时间。但是怎么都是不出来。。。

源码:

@Override
public String sendRandomCode(SmsDto smsDto, Integer seconds) throws Exception {
String code = RandomUtils.generateNumberString(6);
String content = code + " :为您的随机验证码";
logger.info(smsDto.getMobile() + " 的随机验证码: " + code);
String smsParams2 = smsParams.replace("{mobile}", smsDto.getMobile()).replace("{content}", paraTo16(content));
Map<String, Object> result = getSend(smsUrl, smsParams2);
// 保存发送日志
Sms sms = this.getSmsLog(smsDto, content);
JSONObject jsonObject = new JSONObject();
if (MSGConstant.FALSE.equals(result.get("result"))) {
jsonObject.put("msg", "发送失败");
jsonObject.put("code", "102");
return jsonObject.toString();
}
sms.setSendStatus("Y");
smsService.saveSmsLog(sms);
// 加入缓存
System.out.println(RedisKeysUtil.common + smsDto.getMobile());
cacheClient.add(RedisKeysUtil.common + smsDto.getMobile(), code, StringUtils.isEmpty(seconds + "") ? 600 : seconds);
// 加入缓存计算限制发送间隔
cacheClient.add(RedisKeysUtil.msg_length + smsDto.getMobile(), "不允许发送", 120);
jsonObject.put("msg", "发送成功");
jsonObject.put("code", "0");
return jsonObject.toString();
}

-----------------------------------------------------------------------------------------------

觉得没什么问题啊,最后 发现 原来是 传到redis的时间 是2、、、 2s后过期,redis是以秒为单位的。 这个小问题。。。

redis 存取问题的更多相关文章

  1. redis存取对象

    redis主要存储类型最常用的五种数据类型: String Hash List Set Sorted set redis不能直接存取对象,如何解决呢? 两种方式 1.利用序列化和反序列化的方式 两层对 ...

  2. 在django中使用Redis存取session

    一.Redis的配置 1.django的缓存配置 # redis在django中的配置 CACHES = { "default": { "BACKEND": & ...

  3. redis存取数据list

    登录redis客户端 一.存取数据 1.左右添加数据 2.读取数据lrange 3.左右固定弹出一个元素 4.列表中个数 5.删除元素值为value的元素 count 值要自己给定: 6.获取和设置指 ...

  4. 使用RedisTemplate进行Redis存取的工具类设计

    通常在访问量大数据更新频率不高的系统中会使用第三方的缓存组件来降低数据库服务的负载,鉴于模块独立分工独立的考虑,针对缓存组件操作的工作全部应该统一接口对其他业务提供服务,这样业务操作只需要关注业务实现 ...

  5. [redis] redis 存取键值对常用的三种使用方式 - Jedis、JedisPool、Jedis分布式

    |-Jedis 普通方式 |-JedisPool 连接池方式(需要引入pool相关jar) |-Jedis 分布式 (需要引入pool相关jar) 引入jedis2.7.0和commons.pool2 ...

  6. Sword redis存取二进制数据

    #include "hiredis/hiredis.h" /* redis头文件 */ #include <stdio.h> #include <stdlib.h ...

  7. redis存取数据sortedSet

    有序比无序的更耗性能 一.存取元素 1.添加元素,value存在则替换score值,不存在则添加: 2.获取某个元素的分数 3. 4.获取一定索引区间元素value值,默认按照对应score升序排序: ...

  8. redis存取数据Set

    一.set集合无序不重复 二.存取数据 1. 2. 3. 4.set集合差集运算 找出并返回前面集合有后面没有的元素: 5.set集合交际运算 6.并集运算 sunion 7.随机弹出一个元素,因为s ...

  9. redis存取数据Hash

    一.概念 二.存取散列Hash值 1. 2.JSON字符串存取,没有更新值的字段资源浪费 使用散列Hash存取,可以单独到一个或多个字段: 3.hsetnx,属性不存在就新增并赋值,属性已存在啥也不干 ...

随机推荐

  1. 1095. Maximum Swap —— Weekly Challenge

    题目限定输入是[0, 10^8],因而不用考虑负数或者越界情况,算是减小了难度. public class Solution { /** * @param num: a non-negative in ...

  2. 关于DES加密强制更新版(4.22)

    数据加密算法(Data Encryption Algorithm,DEA)是一种对称加密算法,很可能是使用最广泛的密钥系统,特别是在保护金融数据的安全中,最初开发的DEA是嵌入硬件中的.通常,自动取款 ...

  3. oracle--dump->buffer cache (dump 深入实践一)

    1,dump 取值 ALTER SESSION SET EVENTS 'immediate trace name buffers level n'; 只转储buffer header. 在level ...

  4. OnClick和OnClientClick

    OnClientClick是客户端事件处理方法,一般采用JavaScript来进行处理,也就是直接在IE端运行,一点击就运行 OnClick是服务器端事件处理方法,在服务器端也就是IIS中运行,点击后 ...

  5. 如何在react&webpack中引入图片?

    在react&webpack项目中需要引入图片,但是webpack使用的模块化的思想,如果不进行任何配置,而直接在jsx或者是css中使用相对路径来使用就会出现问题,在webpack中提供了u ...

  6. 说说移动端web开发中的点击穿透问题

    最近一直在忙于一个无线端的项目,由于之前主要工作都是在桌面端,移动端接触的比较少,所以中间遇到了很多的坑,做一个简单的记录. 问题背景 需求中有这样的一个功能,点击取件信息的时候会弹出一个地址列表的浮 ...

  7. java.lang.RuntimeException: HRegionServer Aborted的问题

    进程情况 [hadoop@hadoop1 hbase]$ jps QuorumPeerMain ResourceManager HMaster NameNode JournalNode HRegion ...

  8. SQL Cookbook—查询、排序

    涉及到的问题1.在select语句中使用条件逻辑2.限制返回的行数3.从表中随机返回n条记录4.将空值转换为实际值5.对字母和数字混合的数据排序6.处理排序空值7.根据数据项的键排序–8.从一个表中查 ...

  9. HTML 三角符号

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. 在打印窗口,打印视图View的子视图结构图

    在打印窗口,打印视图View的子视图结构图,使用 po [self.view recursiveDescription];