레디 스 키 생존 기간 (만료)

A, 레디 스 만료 명령은, 뒤에 자동으로 삭제 레디 스 시간을 생존 기간의 결합을 설정하는 데 사용할 수 있습니다.

  • 생존 기간 만료 설정 (/ 초에서)
  • pexpire 제공 생존 시간 (/ 밀리 초)
  • 검토 키의 TTL / pttl 남은 수명
  • 생존 기간을 취소 지속
  • expireat하는 열쇠 유닉스 소인 1,351,858,600
  • pexpireat [키 (밀리 초) 유닉스 소인 1,351,858,700,000

둘째, 응용 프로그램 시나리오 :

  • 기간 한정 프로모션
  • 웹 사이트 데이터 캐시 (정기적 인 업데이트에 대한 필요성의 일부 데이터)
  • 제한 사이트 방문자 (예 : 10 시간 1 분 액세스까지) 주파수에 액세스

액세스 제한 사이트 방문자의 셋째, 주파수

package com.chb.common.iface.database.redis;


import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

public class RedisUtil {
	private final String host = "192.168.179.14";
	private final int port = 6379;
	
	public static void main(String[] args) {
		RedisUtil redisUtil = new RedisUtil();
		Jedis jedis = redisUtil.connect1();
		for (int i = 0 ; i < 15; i++) {
			boolean visited = redisUtil.checkLogin(jedis, "192.168.179.11");
			System.out.println("是否允许访问:" + visited);
		}
	}
	
	
	public boolean checkLogin(Jedis jedis, String key) { 
		String value = jedis.get(key);
		if (value == null) {
			jedis.set(key, "0");
			jedis.expire(key, 60); // 设置生存周期60s
		} else {
			int count = Integer.parseInt(value);
			if (count >= 10) {
				System.out.println("当前访问频率过于频繁....");
				return false;
			}
		}
		jedis.incr(key);  // 累加访问次数
		
		return true;
	}
	
	
	
	public Jedis connect() {
		Jedis jedis = new Jedis(host, port);
		return jedis;
	}	
	
	// 使用连接池
	public Jedis connect1() {
		JedisPoolConfig poolConfig = new JedisPoolConfig();
		poolConfig.setMaxTotal(100);//总连接数
		poolConfig.setMaxIdle(10);//空闲链接数
		poolConfig.setMaxWaitMillis(3000);//创建连接的超时时间
		poolConfig.setTestOnBorrow(true);//在创建连接的时候是否会测试
		JedisPool jedisPool = new JedisPool(poolConfig, host, port);
		
		// 通过连接池获取jedis 连接
		Jedis jedis = jedisPool.getResource();
		return jedis;
	}
}

추천

출처blog.csdn.net/wuxintdrh/article/details/93306095