Redis设计超时时间

	Result result = new Result();
		boolean isLimit = LimitVisitTimeUtil.limitVisit(WTOIP_YUN_APP_PORTAL_WEEKDAY_NOTE_NOTIFY,"1",7,TimeUnit.DAYS);
		if (isLimit){
			result.setCode(1);
			result.setMessage("每周只能发一次短信");
			result.setObject(0);
			return result;
		}
 /**
     * 通过key 设置访问次数限制
     * @param key
     * @param num 限制次数
     * @param timeout 间隔时长
     * @param unit 时间单位
     * @return
     */
    public static boolean limitVisit(String key,String num,long timeout, TimeUnit unit){
        if (StringUtils.isBlank(key)){
            logger.error("redis key 为空,设置访问次数限制失败");
            return false;
        }
        try {
            //限制用户提交次数
            String numStr = stringRedisTemplate.opsForValue().get(key);
            if (unit == TimeUnit.MINUTES){
                timeout = timeout * 60;
            }else if (unit == TimeUnit.HOURS){
                timeout = timeout * 60 * 60;
            }else if (unit == TimeUnit.DAYS){
                timeout = timeout * 60 * 60 * 24;
            }
            //第一次访问不进行减一,所以num最小值为1
            if (StringUtils.isBlank(numStr)){
                stringRedisTemplate.opsForValue().set(key,num,timeout,TimeUnit.SECONDS);
            }else {
                int num_ = Integer.parseInt(numStr);
                num_--;
                if (num_ <= 0){
                    return true;
                }
                stringRedisTemplate.opsForValue().set(key,num_+"",stringRedisTemplate.getExpire(key,TimeUnit.SECONDS),TimeUnit.SECONDS);
            }
        }catch (Exception e){
            logger.error("设置默认访问次数失败,key : {},报错:{}",key,e);
        }
        return false;
    }

 

Redis设计规范可以根据具体的使用场景和需求来确定,下面是一些常见的设计规范: 1. 键的命名规范:选择一个有意义的键名,以便于维护和理解。可以使用统一的命名前缀来区分不同的业务或模块。 2. 数据结构的选择:根据实际需求选择适合的数据结构来存储数据。Redis支持多种数据结构,如字符串(string)、哈希(hash)、列表(list)、集合(set)、有序集合(sorted set)等。 3. 内存优化:由于Redis是基于内存的数据库,需要合理使用内存。可以通过设置过期时间、压缩数据、使用合适的数据结构等方式来减少内存占用。 4. 数据持久化:Redis支持两种方式的数据持久化,即快照(snapshotting)和AOF(Append-Only File)。可以根据实际情况选择合适的持久化方式,并设置适当的保存频率和策略。 5. 高可用性和容灾:可以通过主从复制(replication)和哨兵(sentinel)机制来实现Redis的高可用性和容灾。设置合适的主从配置和哨兵监控可以保证系统的稳定性和可用性。 6. 性能优化:可以通过批量操作、管道(pipeline)、使用连接池等方式来提高Redis的性能。同时,合理设置连接超时时间、最大连接数等参数也能够优化性能。 7. 安全性保护:为了保护数据的安全性,可以通过密码认证、限制访问IP、使用SSL加密等方式加强安全性。 需要根据具体场景和需求进行设计和调优,以上只是一些常见的设计规范,具体还需根据实际情况来确定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值