• redis jedis应用


    package com.xzit.test;
    
    import lombok.extern.slf4j.Slf4j;
    import redis.clients.jedis.Jedis;
    
    import java.util.List;
    import java.util.Set;
    
    //1.使用jedis完成元旦年会抽奖系统(参考第二天案例)
    @Slf4j(topic = "c.Reward")
    public class Reward {
        public static void main(String[] args) {
            Jedis jedis = new Jedis("192.168.44.4",6379);
            //s_add(jedis,"cj001", "user:1001", "user:1002", "user:1003", "user:1004");
            s_pop(jedis,"cj001",1);
        }
        public static void s_add(Jedis jedis,String key,String...members){
            jedis.sadd(key,members);
        }
        public static void s_pop(Jedis jedis,String key,int count){
            Set<String> spop = jedis.spop(key, count);
            spop.forEach(c->log.debug(c));
        }
    }
    package com.xzit.test;
    
    import lombok.extern.slf4j.Slf4j;
    import redis.clients.jedis.Jedis;
    
    import java.util.List;
    
    //2.使用jedis完成微博热搜排名,有一次搜索,分数加10分,并按分数权重显示排名
    @Slf4j(topic = "c.Search")
    public class Search {
        public static void main(String[] args) {
            Jedis jedis = new Jedis("192.168.44.4",6379);
            //z_add(jedis,"k1",100,"乌克兰战争");
            //z_add(jedis,"k1",110,"王思聪出轨");
            //z_add(jedis,"k1",120,"神州十四号发射");
            z_rangeByScore(jedis,"k1",1000,0);
            //z_incrby(jedis,"k1",10,"乌克兰战争");
        }
        public static void z_add(Jedis jedis,String key,double score,String member){
            jedis.zadd(key,score,member);
        }
        public static void z_rangeByScore(Jedis jedis,String key,long start,long stop){
            List<String> list = jedis.zrevrangeByScore(key, start, stop);
            list.forEach(System.out::println);
        }
        public static void z_incrby(Jedis jedis,String key,double score,String member){
            jedis.zincrby(key,score,member);
        }
    }
    package com.xzit.test;
    
    import lombok.extern.slf4j.Slf4j;
    import redis.clients.jedis.Jedis;
    
    //3.使用jedis完成用户登录系统,如果3分钟内,失败三次,则要求30分钟后才可以再次登录
    @Slf4j(topic = "c.TestLogin")
    public class TestLogin {
        public static void main(String[] args) {
            Jedis jedis = new Jedis("192.168.44.4",6379);
            login(jedis,"zengyu","1234");
        }
        public static void login(Jedis jedis,String userAccount,String userPassword){
            String count_key="v:"+userAccount+":count";         //收到一次用户名视为登录一次,统计登录次数的key
            String s=jedis.get(count_key);
            String verifyAccount=jedis.hget("user:001","userName");
            String verifyPassword=jedis.hget("user:001","userPassword");
            if (userAccount.equals(verifyAccount)&&userPassword.equals(verifyPassword)){
                log.debug("登录成功");
            }else if (s==null){
                //如果没有
                jedis.setex(count_key,1800,"1");
                log.debug("登录失败");
            }
            else if (Integer.parseInt(s)<3){//如果登录尝试不足3次,每登录1次,记数增加1
                jedis.incr(count_key);
                log.debug("登录失败"+Integer.parseInt(s)+"次,超过3次将锁定30分钟");
            }else {
                log.debug("已失败3次,30分钟后再试");
                jedis.close();
                return;
            }
        }
    }
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration
            xmlns="http://ch.qos.logback/xml/ns/logback"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://ch.qos.logback/xml/ns/logback logback.xsd">
        <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <pattern>%date{HH:mm:ss.SSS} %c [%t] - %m%n</pattern>
            </encoder>
        </appender>
        <logger name="c" level="debug" additivity="false">
            <appender-ref ref="STDOUT"/>
        </logger>
        <root level="ERROR">
            <appender-ref ref="STDOUT"/>
        </root>
    </configuration>
    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>org.example</groupId>
        <artifactId>jedis_demo</artifactId>
        <version>1.0-SNAPSHOT</version>
    
        <properties>
            <maven.compiler.source>11</maven.compiler.source>
            <maven.compiler.target>11</maven.compiler.target>
        </properties>
        <dependencies>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>1.18.22</version>
            </dependency>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
                <version>1.2.7</version>
            </dependency>
            <dependency>
                <groupId>redis.clients</groupId>
                <artifactId>jedis</artifactId>
                <version>4.0.1</version>
            </dependency>
        </dependencies>
    </project>
  • 相关阅读:
    VBScript把json字符串解析成json对象的2个方法
    vue+php接口
    td标签 内容垂直、水平居中
    win7 安装 IIS 配置ASP 【原创】
    PS 实用技巧
    通信原理实践(一)——音频信号处理
    德飞莱STM32单片机学习(一)——下载环境搭建
    电赛总结(四)——波形发生芯片总结之AD9854
    电赛总结(四)——波形发生芯片总结之AD9851
    电赛总结(四)——波形发生芯片总结之AD9834
  • 原文地址:https://www.cnblogs.com/zengyu1234/p/16353592.html
Copyright © 2020-2023  润新知