IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 猿创征文 | Redis之 Jedis实例 -> 正文阅读

[大数据]猿创征文 | Redis之 Jedis实例

前言
👏作者简介:我是笑霸final,一名热爱技术的在校学生。
📝个人主页:个人主页1 || 笑霸final的主页2
📕系列专栏:本文写在java专栏 | | 后端专栏
📧如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀
🔥如果感觉博主的文章还不错的话,👍点赞👍 + 👀关注👀 + 🤏收藏🤏

Jedis所需要的jar包

<dependency>
	<groupId>redis.clients</groupId>
	<artifactId>jedis</artifactId>
	<version>3.2.0</version>
</dependency>

7.2.连接Redis注意事项

禁用Linux的防火墙:Linux(CentOS7)里执行命令
systemctl stop/disable firewalld.service
redis.conf中注释掉bind 127.0.0.1 ,然后 protected-mode no

链接超时解决方案

1.注释掉 bind 127.0.0.1
可以在 vim redis.conf 后进入指令模式(shift +:)
然后输入:/单词
快速找到单词的位置
== 2.修改protected-mode==
在 redis.conf 中找到 protected-mode 将后面的 yes 改为 no
== 3.修改daemonize==
在 redis.conf 中找到 daemonize 将后面的 no 改为 yes
4.修改密码(requirepass foobared)
在 redis.conf 中找到 requirepass foobared ,可在下面添加 requirepass 你的密码
执行完以上操作后进入指令模式 wq 保存退出
5云服务器记得在安全组开放端口 有宝塔得宝塔也要开放端口

二、重启redis
1.关闭redis
在 redis-cli 所在的目录下输入: redis-cli -a 密码
进入到 redis 指令模式,输入: shutdown
然后再输入: exit
2.启动redis
在 redis-server 所在的目录下输入: redis-server redis.conf所在目录/redis.conf
可以通过指令 ps aux | grep redis 查看redis状态
开放端口:
firewall-cmd --add-port=6379/tcp --permanent
重启防火墙生效

8.Jedis_实例

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

思考:

  • =思路==
    * 1.随机密码可以用random
    * 验证码2分钟有效可以把验证码放入redis 设置过期时间120
    * 2.验证问题可以比较redis和输入比较
    * 3.每个手机号每天只能输入三次
    * 用incr 每次发送后+1 大于2时就不能发送了
    */

代码:

package com.xbfinal.jedis;

import redis.clients.jedis.Jedis;
import java.util.Random;

/**
 * @autor 笑霸fianl~
 * 欢迎访问GitHub:https://github.com/XBfinal
 * 欢迎访问Gitee:https://gitee.com/XBfianl
 * 欢迎访问CSDN:https://blog.csdn.net/weixin_52062043
 */
public class PhoneCode {
    /**
     *  ============模拟手机验证码发送========
     *  1.输入手机号 生成6位验证码,2分钟有效
     *  2.输入验证码,验证
     *  3.每个手机号每天只能输入三次
     */

    /**
     * =============思路==============
     *  1.随机密码可以用random
     * 验证码2分钟有效可以把验证码放入redis 设置过期时间120
     *  2.验证问题可以比较redis和输入比较
     *  3.每个手机号每天只能输入三次
     *      用incr 每次发送后+1 大于2时就不能发送了
     */

    public static void main(String[] args) {


        for(int i=0;i<4;i++){
              System.out.println("第"+(i+1)+"次执行得结果:");
            //输入手机号
            final String Code = verifyCode("13555555557");
            //验证
            getRedisCode("13555555557","111111");
            getRedisCode("13555555557",Code);
            System.out.println("===========================");
        }



    }

    /**
     * 生成6位数字验证码
     */
    public static String getCode(){
        final Random random = new Random();
        //直接生成6位数
        final int i = 100000+random.nextInt(1000001-100000);
       // String code=i+"";
        return  Integer.toString(i);

    }
    /**
     * 验证码2分钟有效可以把验证码放入redis
     * 设置过期时间120每个手机号每天只能输入三次
     */
    public static String verifyCode(String phone){
        //1.链接redis
        final Jedis jedis = new Jedis("xxx.xxx.xxx.xxx",6379);//需要redis得host和端口号
        final String auth = jedis.auth("xxxx");//输入密码没设置密码就不用这一步
        /**
         * 拼接 key
         * 手机发送次数key
         * 验证码key
         */
        //手机发送次数key
        String countKey="verifyCode"+phone+":count";
        //验证码key
        String codeKey="verifyCode"+phone+":code";
        //每个手机号每天只能输入三次
        final String count = jedis.get(countKey);
        if(count==null){
            //说明没有发送过,就设置
            jedis.setex(countKey,24*62*62,"1");
        }else if(Integer.parseInt(count) <=2){
            //说明没有超过3次 发送次数加1
            jedis.incr(countKey);

        }else{
            //已经发送三次 不能发送了
            System.out.println("今天发送次数 超过3次  明天再来吧");
            jedis.close();
        }
        //发送得验证码 放入 redis
        final String vcode = getCode();
        jedis.setex(codeKey,2*60,vcode);
        System.out.println("输入手机号时得验证码:"+vcode);
        jedis.close();//关闭链接
        return vcode;
    }

    /**验证 验证码
     *
     * @param phone
     * @param code
     */
    public static void getRedisCode(String phone,String code){
        //手机发送次数key
        String countKey="verifyCode"+phone+":count";
        //验证码key
        String codeKey="verifyCode"+phone+":code";
        //从redis获取验证码
        final Jedis jedis = new Jedis("101.200.230.213",6379);//需要redis得host和端口号
        final String auth = jedis.auth("0615");//输入密码

        final String RedisCode = jedis.get(codeKey);
        if(RedisCode.equals(code)){
            System.out.println("验证成功");
        }else{
            System.out.println("验证失败");
        }
        jedis.close();

    }
}

运行截图
在这里插入图片描述

在这里插入图片描述

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-09-04 01:18:22  更:2022-09-04 01:20:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 9:46:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码