1、redis中可以使用expire命令设置一个键的生存时间,到时间后redis会自动删除它 
expire 设置生存时间(单位/秒)

pexpire 设置生存时间(单位/毫秒)

ttl/pttl 查看键的剩余生存时间

persist 取消生存时间

expireat [key] unix时间戳1351858600 
pexpireat [key] unix时间戳(毫秒)1351858700000

2、应用场景 
限时的优惠活动 
网站数据缓存(对于一些需要定时更新的数据) 
限制网站访客访问频率(例如:1分钟最多访问10次)

package cn.crxy.redis;

import static org.junit.Assert.*;

import java.util.List;

import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
import org.junit.Test; import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import redis.clients.jedis.Transaction; public class RedisTest { String ip = "192.168.1.170";
int port = 6379;
Jedis jedis = new Jedis(ip, port);
/**
* 仅供测试使用,单机无连接池方式
* @throws Exception
*/
@Test
public void test1() throws Exception {
//获取到redis服务器的链接
jedis.set("crxy", "wwww");
String value = jedis.get("crxy");
System.out.println(value);
} /**
* 单机连接池方式
* @throws Exception
*/
@Test
public void test2() throws Exception { JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
//指定连接池中最大空闲连接数
jedisPoolConfig.setMaxIdle(10);
//链接池中创建的最大连接数
jedisPoolConfig.setMaxTotal(100);
//设置创建链接的超时时间
jedisPoolConfig.setMaxWaitMillis(2000);
//表示连接池在创建链接的时候会先测试一下链接是否可用,这样可以保证连接池中的链接都可用的。
jedisPoolConfig.setTestOnBorrow(true); //创建一个jedis连接池
JedisPool jedisPool = new JedisPool(jedisPoolConfig, ip, port);
//从连接池中获取一个链接
Jedis jedis = jedisPool.getResource();
String value = jedis.get("crxy");
System.out.println(value); //把连接返回给连接池
jedisPool.returnResource(jedis);
} /**
* 限制网站访客的访问频率
* 一分钟之内最多访问10次
*/
@Test
public void test3() throws Exception {
String ip = "192.168.1.110";
for(int i=1;i<20;i++){
boolean flag = testLogin(ip);
if(flag){
System.out.println("正常访问"+i);
}else{
System.out.println("访问频繁,禁止访问");
}
} } //根据用户的ip校验用户是否可以继续访问
private boolean testLogin(String ip) {
String value = jedis.get(ip);
if(value==null){
jedis.incr(ip);
//设置ip的生存时间
jedis.expire(ip, 60);
}else{
int parseInt = Integer.parseInt(value);
if(parseInt>=10){
return false;
}
jedis.incr(ip);
}
return true;
} }

redis中键的生存时间(expire)的更多相关文章

  1. 【redis中键的生存时间(expire) 】

    1.redis中可以使用expire命令设置一个键的生存时间,到时间后redis会自动删除它      expire      设置生存时间(单位/秒)      pexpire    设置生存时间( ...

  2. redis中键空间通知

    通过redis的键空间通知,当redis删除过期key的时候,及时更新mongodb数据库中user的状态 var Redis = require('ioredis'); var redis = ne ...

  3. redis设置键值生存时间

    EXPIRE <KEY> <TTL> : 将键的生存时间设为 ttl 秒PEXPIRE <KEY> <TTL> :将键的生存时间设为 ttl 毫秒EXP ...

  4. redis中键值对中值的各种类型

    1 value的最基本的数据类型是String 2 如果value是一张图片 先对图片进行base64编码成一个字符串,然后再保存到redis中,用的时候进行base64解码即可. 这是base64的 ...

  5. redis中的key设置过期时间

    EXPIRE key seconds 为给定  key  设置生存时间,当  key  过期时(生存时间为  0  ),它会被自动删除. 在 Redis 中,带有生存时间的  key  被称为『易失的 ...

  6. Redis 中的原子操作(3)-使用Redis实现分布式锁

    Redis 中的分布式锁如何使用 分布式锁的使用场景 使用 Redis 来实现分布式锁 使用 set key value px milliseconds nx 实现 SETNX+Lua 实现 使用 R ...

  7. 快速同步mysql数据到redis中

    MYSQL快速同步数据到Redis 举例场景:存储游戏玩家的任务数据,游戏服务器启动时将mysql中玩家的数据同步到redis中. 从MySQL中将数据导入到Redis的Hash结构中.当然,最直接的 ...

  8. 【Redis 向Redis中批量导入mysql中的数据(亲自测试)】

    转自:https://blog.csdn.net/kenianni/article/details/84910638 有改动,仅供个人学习 问题提出:缓存的冷启动问题 应用系统新版本上线,这时候 re ...

  9. redis中关于过期键的删除策略

    我们已经了解到了Redis是一种内存数据库,Redis中数据都是以key-value的形式存储在内存中.由Redisserver来维护和管理这部分内存,内存是何足珍贵,不须要的数据或者是已经使用过的无 ...

随机推荐

  1. JvisualVM、JMC监控远程服务器

    修改服务器上jmxremote.access与jmxremote.password,输入命令: find -name jmxremote.access进入该jmxremote.access文件所在目录 ...

  2. div内部元素居中

    要让div内部元素垂直居中,则给div加上此css样式: .div-vertical-middle{  height:200px;  width:304px;  line-height:50px;  ...

  3. API测试自动化——基于CDIF的SOA基本功能(实例篇)

    今天我们通过一些实例来体验一下API的自动化测试,感受一下基于CDIF的SOA的一些基本功能. 传统的测试工具在测试一个API的时候,必须手动填写这个API所需要接收的所有信息,比如一个查询航班动态的 ...

  4. Java第二章 变量

    1.什么是变量? 存储数据的基本单位. 2.数据类型分为: 基本类型和引用数据 3.基本数据类型和引用数据类型的区别: 基础数据:不同的变量会分配不同的存储空间,改变一个变量不会影响另一个变量 引用数 ...

  5. Android下使用busybox的ifconfig

    busybox ifconfig eth0 10.0.16.45 netmask 255.255.254.0 broadcast 10.0.16.186busybox route add defaul ...

  6. firefox上安装selenium ide失败

    Selenium 初学者第一步: 最近在学习selenium,但是在安装的时候遇到了问题.我是直接在firefox安装的Selenium IDE ,虽然下载安装之后存在于扩展中,但是工具栏里并没有显示 ...

  7. Crgwin 简介及安装

    Crgwin 简介 Cygwin是一个在windows平台上运行的类UNIX模拟环境,是cygnus solutions公司开发的自由软件(该公司开发的著名工具还有eCos,不过现已被Redhat收购 ...

  8. 个人认为最好的Mac端的视频播放软件___movist

    http://pan.baidu.com/s/1kVm0Zmn password : y9rn 点击打开链接 http://pan.baidu.com/s/1i4ABval password :kt3 ...

  9. SQL入门之条件表达式

    where子句和having子句主要是用来筛选符合条件的元组,其后紧跟的即为条件表达式. 0.and, or条件的连接 用法和一般编程语言一样,主要用于条件的拼接.and两边都为真,则结果为真.or两 ...

  10. php基础知识--2017-04-14

    1.Php的两种打开方式: 第一种方式:http://localhost/0414/qq.php 第二种:新建站点,选到www目录.点击服务器----+添加-------选择本地网络   ------ ...