能支持java对Redis的操作
jedis依赖
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>4.3.1</version>
</dependency>
连接方式
// 测试类程序
import redis.clients.jedis.Jedis;
// 创建一个Jedis对象,并传入地址和端口号
Jedis jedis = new Jedis(url,port);
sout(jedis.pong())
需要注释掉redis.conf中的bind本地和保护模式。 连接超时,有可能是防火墙开启,没有开放对应的端口导致。
在Linux中在防火墙中开启端口的方式 – Wasting_Misaka.Blog (forelink.top)
操作支持
// 示例
public void key_demo(){
// 创建Jedis对象
Jedis jedis = new Jedis(url,port)
// 添加
jedis.set("name","misaka")
//获取
String name = jedis.get("name")
sout(name)
// 遍历输出所有key
Set<String> keys = jedis.keys("*")
for(String key : keys)
sout(key)
// 添加多个key-value
jedis.mset("k1","v1","k2","v2", ...)
// 获取多个key-value
List<String> mget = jedis.mget("k1","k2", ...)
for(String key : keys)
sout(key)
}
模拟验证码发送
输入手机号,点击发送后随机生成发送6位数字码,2分钟有效
输入验证码,点击验证,返回成功或失败
每个手机号每天只能输入3次
// 1 生成随机6位数字验证码
public static String getCode(){
Random random = new Random();
random.nextInt(10);
String code = "";
for(int i=0;i<6;i++){
int rand = random.nextInt(10);
code += rand;
}
return code;
}
// 2.1 验证码在2分钟内有效
// 2.2 每个手机每天只能发送三次验证码
public static void verifyCode(String phone,String code){
Jedis jedis = new Jedis(url,port);
String countKey = "VerifyCode"+phone+":count";
String codeKey = "VerifyCode"+phone+":code";
String count = jedis.get(countKey);
if(count==null){
jedis.setnx(countKey,24*60*60,"1");
}else if(Integer.parseInt(count) <= 2){
jedis.incr(countKey);
}else if(Integer.parseInt(count) > 2){
sout("次数超三次");
jedis.close();
return;
}
// 获取验证码 设置过期时间为120s
String vcode = getCode;
jedis.setex(codeKey,120,vcode);
jedis.close();
}
// 3 判断验证码是否一致
public static void getRedisCode(String phone,String code){
// 从redis中获取验证码
Jedis jedis = new Jedis(url,port);
String codeKey = "VerifyCode"+phone+":code";
String redisCode = jedis.get(codeKey);
// 判断
if(redisCode.equals(redisCode)){
sout("成功");
}else{
sout("失败");
}
}