三、Jedis操作

三、Jedis操作

1、初次使用Jedis
  • 第一步:引入jar包若使用maven工程,则

    <dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
        <version>3.2.0</version>
    </dependency>
    
  • 第二步:编写测试类测试

    @Test
    public void test1(){
        Jedis jedis = new Jedis("192.168.17.138", 6379);//指定主机ip和端口号
        String ping = jedis.ping();//ping() 相当于 命令中的ping
        System.out.println(ping);
        jedis.close();//操作完成关闭连接
    }
    
  • 第三步:若编写上述代码执行出错,记得修改redis的配置文件或查看linux的防火墙

    • 默认redis是只能本机连接的我们需要修改 redis.conf

      #bind 127.0.0.1 -::1 # 1、把bind的限制注释掉
      protected-mode no # 2、把本机保护改为no
      
    • 禁用掉linux的防火墙

      [root@localhost ~]# systemctl stop firewalld.service
      
2、Jedis中的方法
3、案例:完成一个手机验证码的功能
  • 要求:

    • 输入手机号,点击发送后随即生成6位数字码,2分钟有效
    • 输入验证码,点击验证,返回成功或失败
    • 每个手机号每天只能输入3次
  • 实现:

    public class PhoneCode {
        public static void main(String[] args) {
            //模拟验证码发送
            verifyCode("13678765435");
    
            //模拟验证码校验
            //getRedisCode("13678765435","4444");
        }
        //3 验证码校验
        public static void getRedisCode(String phone,String code) {
            //从redis获取验证码
            Jedis jedis = new Jedis("192.168.44.168",6379);
            //验证码key
            String codeKey = "VerifyCode"+phone+":code";
            String redisCode = jedis.get(codeKey);
            //判断
            if(redisCode.equals(code)) {
                System.out.println("成功");
            }else {
                System.out.println("失败");
            }
            jedis.close();
        }
        //2 每个手机每天只能发送三次,验证码放到redis中,设置过期时间120
        public static void verifyCode(String phone) {
            //连接redis
            Jedis jedis = new Jedis("192.168.44.168",6379);
            //拼接key
            //手机发送次数key
            String countKey = "VerifyCode"+phone+":count";
            //验证码key
            String codeKey = "VerifyCode"+phone+":code";
    
            //每个手机每天只能发送三次
            String count = jedis.get(countKey);
            if(count == null) {
                //没有发送次数,第一次发送
                //设置发送次数是1
                jedis.setex(countKey,24*60*60,"1");
            } else if(Integer.parseInt(count)<=2) {
                //发送次数+1
                jedis.incr(countKey);
            } else if(Integer.parseInt(count)>2) {
                //发送三次,不能再发送
                System.out.println("今天发送次数已经超过三次");
                jedis.close();
            }
            //发送验证码放到redis里面
            String vcode = getCode();
            jedis.setex(codeKey,120,vcode);
            jedis.close();
        }
        //1 生成6位数字验证码
        public static String getCode() {
            Random random = new Random();
            String code = "";
            for(int i=0;i<6;i++) {
                int rand = random.nextInt(10);
                code += rand;
            }
            return code;
        }
    }
    
4、SpringBoot整合Redis
  • 仅仅需要导入场景启动器,即可
  • 这部分内容在之前文章中也有介绍:https://blog.csdn.net/weixin_46203713/article/details/121375612
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值