栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Redis-07-Redis的java应用(Jides)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Redis-07-Redis的java应用(Jides)

文章目录

1:Jedis导包2:java使用Jedis连接redis注意事项3:Jedis的hellowrold4:使用jedis测试相关数据类型

1:key2:String3:list4:zset5:hash6:zset 5:jedis实例-手机验证码功能

1:Jedis导包

	redis.clients
	jedis
	3.2.0

2:java使用Jedis连接redis注意事项

redis.conf中注释掉bind 127.0.0.1 ,然后 protected-mode no 并重启redis禁用Linux的防火墙,或者开放对应端口:Linux(CentOS7)里执行命令:

查看防火墙状态:systemctl status firewalld关闭防火墙命令:systemctl stop/disable firewalld.service 3:Jedis的hellowrold

 @Test
    public void test1(){
        //                              ip地址             端口号
        Jedis jedis = new Jedis("192.168.0.113",6379);
        String ping = jedis.ping();

        System.out.println(ping);
        jedis.close();
    }
4:使用jedis测试相关数据类型 1:key
//测试key的操作
    @Test
    public void testKey(){
        Jedis jedis = new Jedis("192.168.0.113",6379);
        Set keys = jedis.keys("*");
        for (String key : keys) {
            System.out.println(key);

        }


        System.out.println(jedis.exists("k1"));
        System.out.println(jedis.ttl("k1"));
        jedis.close();
    }
2:String
//测试Sting类型
    @Test
    public void testString(){
        Jedis jedis = new Jedis("192.168.0.113",6379);
        jedis.set("str1","hello");
        jedis.mset("str2","world","str3","zhangsan");
        List mget = jedis.mget("str1", "str2", "str3");
        System.out.println(mget);

        jedis.close();
    }
3:list
//测试list类型-双向链表
    @Test
    public void testList(){
        Jedis jedis = new Jedis("192.168.0.113",6379);
        jedis.lpush("list1","1","2","3","4");
        List list1 = jedis.lrange("list1", 0, -1);
        for (String s : list1) {
            System.out.println(s);

        }

        jedis.close();
    }
4:zset
 //测试set类型-无序集合
    @Test
    public void testSet(){
        Jedis jedis = new Jedis("192.168.0.113",6379);
        jedis.sadd("set1","hello","world","hello");
        Set set1 = jedis.smembers("set1");
        for (String s : set1) {
            System.out.println(s);
        }

        jedis.close();
    }
5:hash
 //测试hash类型-存储对象
    @Test
    public void testHash(){
        Jedis jedis = new Jedis("192.168.0.113",6379);
        jedis.hset("hash1","name","zhangsan");
        jedis.hset("hash1","age","22");
        Map map = new HashMap<>();
        map.put("name","李四");
        map.put("age","23");
        jedis.hset("hash2",map);

        Map hash1 = jedis.hgetAll("hash1");
        System.out.println(hash1);
        Map hash2 = jedis.hgetAll("hash2");
        System.out.println(hash2);

        jedis.close();
    }
6:zset
//测试zset类型
    @Test
    public void testZet(){
        Jedis jedis = new Jedis("192.168.0.113",6379);
        jedis.zadd("zset1",100,"java");
        jedis.zadd("zset1",200,"mysql");
        jedis.zadd("zset1",300,"php");
        Set zset1 = jedis.zrange("zset1", 0, -1);
        for (String s : zset1) {
            System.out.println(s);
        }


        jedis.close();
    }
5:jedis实例-手机验证码功能

要求:

    输入手机号,点击发送后随机生成6位数字码,2分钟有效输入验证码,点击验证,返回成功或失败每个手机号每天只能输入3次
import org.junit.Test;
import redis.clients.jedis.Jedis;

import java.util.Random;


public class PhoneCode {

    //这是一个程序入口
    public static void main(String[] args) {
        //生成验证码
//        verifyCode("123456789");

        //验证验证码
        getRedisCode("123456789","822540");
    }

    //1:获取六位数验证码
    public static String getCode(){
        StringBuilder code = new StringBuilder();

        Random random = new Random();
        for (int i = 0; i < 6; i++) {
            code.append(random.nextInt(10));
        }

        return code.toString();
    }

    //2:每个手机号每天只能输入三次,并且验证码在2分钟内有效

    public static void verifyCode(String phone){
        Jedis jedis = new Jedis("192.168.0.113",6379);
        //设置验证码次数的key
        String phoneCodecount = "code_"+phone+"_count";
        //设置验证码的key
        String phoneCode = "code_"+phone;

        if(!jedis.exists(phoneCodecount)){
            //查看如果验证码次数不存在就增加
            jedis.setex(phoneCodecount,24*60*60,"1");
        }else if (Integer.valueOf(jedis.get(phoneCodecount))<2){
            //如果验证码次数没达到3次,那么久增加
            jedis.incrBy(phoneCodecount,1);
        }else {
            System.out.println("今日验证码次数已达到3次");
            jedis.close();
            return;
        }

        //生成验证码放进redis中
        String code = getCode();
        jedis.setex(phoneCode,120,code);
        System.out.println("生成新的验证码:"+code);
        jedis.close();
    }

    //3:对传进来的验证码进行验证
    public static void getRedisCode(String phone,String code){
        Jedis jedis = new Jedis("192.168.0.113",6379);
        //设置验证码的key
        String phoneCode = "code_"+phone;
        //从redis中获取验证码
        String phoneCODE = jedis.get(phoneCode);
        if(code.equals(phoneCODE)){
            System.out.println("成功");
        }else {
            System.out.println("失败");
        }
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/756139.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号