001.Redis分布式锁应用(一天中的第一次访问是  “你好,主人!”  其余访问是  “你好,请下次再来!”)_redis

 

 

001.Redis分布式锁应用(一天中的第一次访问是  “你好,主人!”  其余访问是  “你好,请下次再来!”)_redis_02

 

 

package com.redis.subject.util;

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

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

public class JedisUtils
{
private static final JedisPool JEDIS_POOL;

static
{
/**
* 1.getResourceAsStream()从resource目录读取文件变成输入流
* 2. prop.load()将输入流中转化复制到Properties中
*/
InputStream resourceAsStream = JedisUtils.class.getClassLoader().getResourceAsStream("jedis.properties");
Properties pro = new Properties();
try
{
pro.load(resourceAsStream);
}
catch (IOException e)
{
e.printStackTrace();
}
JedisPoolConfig config =new JedisPoolConfig();
config.setMaxTotal(Integer.parseInt(pro.getProperty("maxTotal")));
config.setMaxIdle(Integer.parseInt(pro.getProperty("maxIdle")));
JEDIS_POOL =new JedisPool(config,pro.getProperty("host"), Integer.parseInt(pro.getProperty("port")));
}

public static Jedis getJedis()
{
return JEDIS_POOL.getResource();
}

public static void closeJedis(Jedis jedis) {
if (jedis != null) {
jedis.close();

}
}
}
package com.redis.subject.util;

import java.util.Calendar;

public class SetUpSecondUtils
{
/**
* @return 当前时间到凌晨12点剩余秒数
*/
public static long setUpSecond()
{
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_YEAR, 1);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.MILLISECOND, 0);
long seconds = (cal.getTimeInMillis() - System.currentTimeMillis()) / 1000;
return seconds;
}
}
package com.redis.subject.one;


import com.redis.subject.util.JedisUtils;
import com.redis.subject.util.SetUpSecondUtils;
import redis.clients.jedis.Jedis;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;


@WebServlet("/helloServlet")
public class HelloServlet extends HttpServlet
{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
{
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
Jedis jedis = JedisUtils.getJedis();
String sign = jedis.set("visit", "tourist", "NX", "EX", SetUpSecondUtils.setUpSecond());
JedisUtils.closeJedis(jedis);
if (sign != null)
{
resp.getWriter().write("你好,主人!");
}
else
{
resp.getWriter().write("你好,请下次再来!");
}

}

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
{
doGet(req,resp);
}
}