精华内容
下载资源
问答
  • Redis Expire 命令用于设置 key 的过期时间。key 过期后将不再可用。 用法:Expire key 127.0.0.1:6379 [8] > set keyname keyvalue OK 127.0.0.1:6379 [8] > expire keyname 30 (integer) 1 设置了keyname...

    Expire

    Redis Expire 命令用于设置 key 的过期时间。key 过期后将不再可用。
    用法:Expire key
    

    127.0.0.1:6379 [8] > set keyname keyvalue
    OK
    127.0.0.1:6379 [8] > expire keyname 30
    (integer) 1

    设置了keyname为30秒,30秒后keyname过期不存在
    30秒后
    127.0.0.1:6379 [8] > get keyname
    (nil)

    展开全文
  • Redis expire

    千次阅读 2016-03-24 06:44:04
    ...memcached 和 redis 的set命令都有expire参数,可以设置key的过期时间。但是redis是一个可以对数据持久化的key-value database,它的key过期策略还是和memcached有所不同的。...redis通过expire命令来设置

    本文转自:http://jiorry.iteye.com/blog/961172


    memcached 和 redis 的set命令都有expire参数,可以设置key的过期时间。但是redis是一个可以对数据持久化的key-value database,它的key过期策略还是和memcached有所不同的。梳理,整理如下:

     

    redis通过expire命令来设置key的过期时间。

    语法:redis.expire(key, expiration)

     

    1. 在小于2.1.3的redis版本里,只能对key设置一次expire。redis2.1.3和之后的版本里,可以多次对key使用expire命令,更新key的expire time。


    2. redis术语里面,把设置了expire time的key 叫做:volatile keys。 意思就是不稳定的key。

     

    3. 如果对key使用set或del命令,那么也会移除expire time。尤其是set命令,这个在编写程序的时候需要注意一下。


    4. redis2.1.3之前的老版本里,如果对volatile keys 做相关写入操作(LPUSH,LSET),和其他一些触发修改value的操作时,redis会删除 该key。 也就是说 :

    redis.expire(key,expiration);

    redis.lpush(key,field,value);

    redis.get(key) //return null

    redis2.1.3之后的版本里面没有这个约束,可以任意修改。

     

    redis.set(key,100);

    redis.expire(key,expiration);

    redis.incr(key)

    redis.get(key)

    //redis2.2.2 return 101; redis<2.1.3 return 1;


    5. redis对过期键采用了lazy expiration:在访问key的时候判定key是否过期,如果过期,则进行过期处理。其次,每秒对volatile keys 进行抽样测试,如果有过期键,那么对所有过期key进行处理。

     

    end------------------


    展开全文
  • Redis Expire

    千次阅读 2016-07-25 16:42:43
    Redis Expire命令用于设定键有效期。到期时间后键不会在Redis中使用。 返回值 整数值1或0 1, 如果设置的键超时。 0, 如果键不存在,或者未设置超时。 语法 Redis expire命令的基本语法如下所...
    Redis Expire命令用于设定键有效期。到期时间后键不会在Redis中使用。
    


    返回值
    整数值1或0


    1, 如果设置的键超时。


    0, 如果键不存在,或者未设置超时。


    语法
    Redis expire命令的基本语法如下所示:


    redis 127.0.0.1:6379> Expire KEY_NAME TIME_IN_SECONDS


    例子
    首先,在Redis创建一个键,并设置一定的值。


    redis 127.0.0.1:6379> SET yiibai redis

    OK


    现在设置以前创建的键超时


    redis 127.0.0.1:6379> EXPIRE yiibai 60

    (integer) 1


    在上面的例子中键yiibai被设定一分钟(或者60秒)的时间。 1分钟后,键会自动失效。


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


    注意:如果对key yiibai 重新set值,expire设置的超时时间会失效。需要重新设置。



    展开全文
  • 通过Expire实现Redis锁机制

    千次阅读 2018-10-15 14:38:33
    以及用户体验,我们利用redis的过期时间简单的实现了一种Redis锁 当用户提交表单的时候,我们通过对表单数据以及用户唯一标识例如userNo进行加密,当做我们缓存的唯一key import java.security.MessageDigest; public...

    在我们的业务系统中,可能因为某种原因,用户会不断的点击表单提交按钮,为了较少对系统的 无意义访问、暴力提交

    以及用户体验,我们利用redis的过期时间简单的实现了一种Redis锁

    当用户提交表单的时候,我们通过对表单数据以及用户唯一标识例如userNo进行加密,当做我们缓存的唯一key

    
    import java.security.MessageDigest;
    
    public static String genLockKey(String formData, String userNo){
    		StringBuilder builder = new StringBuilder();
    		MessageDigest md;
    		try {
    			md = MessageDigest.getInstance("MD5");
    			StringBuffer lockKey = new StringBuffer(""); 
    			lockKey.append(userNo);
    			lockKey.append(formData);
    			md.update( lockKey.toString().getBytes() );
    			for ( byte b : md.digest() ){
    				builder.append( Integer.toHexString( (b >> 4) & 0xf ) );
    				builder.append( Integer.toHexString( b & 0xf ) );
    			}
    		} catch (NoSuchAlgorithmException e) {
    			e.printStackTrace();
    		}
    		return builder.toString();
    	}
    

    然后我们判断判断redis 中是否缓存了这个key,如果有缓存,则提醒用户不要重复提交,否则我们做redis缓存

    String lockKey = CryptUtils.genLockKey(formData, user.getNo());
    if (RedisLock.isLock(lockKey)) {
         // 不能重复提交
         logger.error("提交出错 - 不能重复提交报销单!");
         returnVo.setMsg("温馨提示 - 不能重复提交报销单!");
         return JsonUtils.toJson(returnVo);
     }
    RedisLock.lock(lockKey, 2);
    //.....剩余的业务逻辑
    

    接下来上我们RedisLock 的实现

    
    import java.util.concurrent.TimeUnit;
    
    import org.springframework.data.redis.core.RedisTemplate;
    
    import com.ys.tools.common.SpringContextHolder;
    
    public class RedisLock {
    
    	/**
    	 * 加锁
    	 * 
    	 * @param key
    	 * @param minutes
    	 *            失效的分钟数
    	 */
    	public static void lock(String key, int seconds) {
    		getRedisTemplate().opsForValue().set(key, key, seconds,
    				TimeUnit.SECONDS);
    	}
    
    	/**
    	 * 判断是否还在锁定状态
    	 * 
    	 * @param key
    	 * @return true 锁定 false 已经解除锁定
    	 */
    	public static boolean isLock(String key) {
    		Long flag = getRedisTemplate().getExpire(key);
    		return flag > 0;
    	}
    	
    	/**
    	 * 解锁
    	 * @param key
    	 */
    	public static void unLock(String key) {
    		getRedisTemplate().delete(key);
    	}
    
    	private static RedisTemplate<String, String> getRedisTemplate() {
    		return SpringContextHolder.getBean("redisTemplate");
    
    	}
    
    }
    

    其实业务逻辑很简单,思想也很简单。

    对表单数据进行缓存并设置过期时间,如果过期时间内点击按钮 缓存存在 ,则进行页面提示,如果不存在缓存则进行业务处理以及增加缓存防止重复点击 So Easy~~

    展开全文
  • redis 下key的过期时间详解 :expire

    万次阅读 2016-08-22 17:05:36
    redis 下key的过期时间详解 :expire Redismemcached  memcached 和 redis 的set命令都有expire参数,可以设置key的过期时间。但是redis是一个可以对数据持久化的key-value database,它的key过期策略还是...
  • RedisEXPIRE

    千次阅读 2018-04-29 15:58:57
    RedisEXPIRE通过expire或者pexpire命令,客户端可以以秒或者毫秒精度为数据库中的某个键设置生存时间(Time To Live,TTL),在经过指定的秒数或者毫秒数之后,服务器就会自动删除生存时间为0的键。与expire和...
  • redis expire命令

    2020-11-30 15:54:47
    redis expire可以设置key的过期时间,用法:expire $key $seconds ttl key获取key的过期时间 127.0.0.1:3178> set test 1 OK 127.0.0.1:3178> get test "1" 127.0.0.1:3178> expire test (error) ERR ...
  • Redis Expire 命令

    2018-10-09 09:55:29
    Redis Expire 命令用于设置 key 的过期时间,key 过期后将不再可用。单位以秒计。 返回值 设置成功返回 1 。 当 key 不存在或者不能为 key 设置过期时间时(比如在低于 2.1.3 版本的 Redis 中你尝试更新 key 的过期...
  • Redis Expire TTL命令

    2017-05-25 13:58:00
    Redis can be told that a key should only exist for a certain length of time. This is accomplished with the EXPIRE and TTL commands. SET resource:lock "Redis Demo" EXPIRE resource:lock ...
  • redisexpire命令详解

    2020-06-30 09:19:17
    expire是设置redis过期时间的命令,需要注意的点有以下几点 expire设置过期时间的单位是秒,如设置name的过期时间为1000秒 expire name 1000 超过时间后会自动删除key,但是不一定是立即删除,因为redis的过期...
  • Redis学习之expire命令

    2019-12-14 19:22:24
    Redis exists 命令用于设置 key 的过期时间。 key 过期后将不再可用。 语法 expire key seconds EXPIRE 为给定 key 设置生存时间,当 key 过期时(生存时间为 0 ),它会被自动删除。 在 Redis 中,带有生存时间的...
  • redis expire超时操作

    2019-05-31 14:59:00
    EXPIRE user 1000 (integer) 1 127.0.0.1:6379> ttl user # 查看剩余超时时间 (integer) 996 超时重置  有些redis命令会清除key的超时时间,如set,del,getset和所有的*Store命令。即修改redis的值而不是...
  • redisexpire总结

    2021-01-18 19:28:17
    String和其他redis数据结构expire是不一样的。 String 有点不一样: 具体见我置顶的博文redis手写总结 1.2.3 容器型数据结构的通用规则 list,set,hash,zset 是容器型数据结构 create if not exists drop if ...
  • Redis - Expire & Setex

    2020-03-30 21:25:53
    Expire 为 key 设置过期时间 Setex 为 key 设置 value 值,以及设置过期时间 区别 Setex是一个原子操作。设置值,设置过期时间两个动作,会在同一时间完成 ...
  • redis 过期时间 HELP EXPIRE 为给定 key 设置生存时间,当 key 过期时(生存时间为 0 ),它会被自动删除。 EXPIRE key seconds summary: Set a key’s time to live in seconds since: 1.0.0 group: generic ...
  • redis expire key 过期不删除

    千次阅读 2017-08-28 21:20:59
    1. 问题描述今天使用 redis 遇到个奇怪的问题,key 设置过期时间后,到期后并没有删除。
  • 【思考点滴】 ...   一、背景 ...不做详细说明,有朋友自己...发现会有偶发的 expire 失败,以及redis锁节点一致无法删除。   二、问题分析   1、首先在生产环境中,不建议使用 setnx + expire的方式来实现锁...
  • Expire 为key设置过期时间 Setex 为key设置value值,并且,设置过期时间 区别 Setex是一个原子操作 设置值,设置过期时间两个动作,会在同一时间完成 在Redis缓存中,非常实用 补充知识:redis之setnx、setex、...
  • Redis命令之EXPIRE

    2017-02-23 11:20:16
    EXPIRE key seconds为给定 key 设置生存时间,当 key 过期时(生存时间为 0 ),它会被自动删除。在 Redis 中,带有生存时间的 key 被称为『易失的』(volatile)。生存时间可以通过使用 DEL 命令来删除整个 key 来移除...
  • redis的生存时间expire

    2020-10-16 17:08:26
    redis中可以使用expire命令设置一个键的生存时间,到时间后redis会自动删除它。 expire 设置生存时间(单位/秒) pexpire设置生存时间(单位/毫秒) ttl/pttl 查看键的剩余生存时间 persist 取消生存时间 应用场景: ...
  • redis 提供了一个指令:EXPIRE key seconds 设置key 的生存时间,当key过期(生存时间为0),会自动删除 如下图所示: 设置两秒钟的时间,可以看出再次setnx locknx task ,返回为1,说明执行过期时间生效,如下如简单代码:...
  • RedisExpire与Setex

    万次阅读 2018-08-14 10:28:12
    Expire 为key设置过期时间 Setex 为key设置value值,并且,设置过期时间 区别 Setex是一个原子操作 设置值,设置过期时间两个动作,会在同一时间完成 在Redis缓存中,非常实用...
  • redis expire方式设置缓存时间的坑

    千次阅读 2019-10-01 14:20:45
    最近入职后一直很忙,今天国庆值班,...但是redis对于hash类型,并没有提供直接设置超时时间的支持,于是设计采用expire一个key的过期的时间方式来实现当日过期。 2、问题 通过观察发现,隔天的数据,在共用一个k...
  • redis 生存时间 expire ttl

    千次阅读 2016-02-26 10:03:35
    redis 采用 expire 设置生存时间,到时间自动删除,ttl 查看剩余时间。 下面是redis3.0.7 运行的 不设置expire ttl 返回-1表示永久存在 设置了expire ttl 会返回剩余时间 如果没有该键 直接返回-2
  • RedisEXPIRE过期机制介绍 概述 在实际开发过程中经常会遇到一些有时效性数据,比如限时优惠活动,缓存或者验证码之类的。过了一段时间就需要删除这些数据。在关系型数据库中一般都要增加一个字段记录数据的到期...
  • redis设置expire以及删除机制

    千次阅读 2019-03-23 13:45:32
    Redis无论有没有设置expire,他都会遵循redis的配置好的删除机制,在配置文件里设置: redis最大内存不足"时,数据清除策略,默认为"volatile-lru"。 volatile-lru ->对"过期集合"中的数据采取LRU(近期最少使用)...
  • 从零手写 cache 之 redis expire 过期实现原理.pdf
  • redis设置expire以及内存淘汰机制

    千次阅读 2019-04-01 21:34:38
    1.在redis中可以通过使用expire命令设置键的过期时间: redis>set name kk redis>expire name 60 //设置过期时间为60秒 redis>ttl name //查看当前该键的过期时间 可以通过expire来限制用户访问频率...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 61,434
精华内容 24,573
关键字:

expireredis

redis 订阅