Jedis依赖和支持

能支持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)
}

模拟验证码发送

  1. 输入手机号,点击发送后随机生成发送6位数字码,2分钟有效


  2. 输入验证码,点击验证,返回成功或失败


  3. 每个手机号每天只能输入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("失败");
    }
    }



上一篇
下一篇