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>

 

posted @ 2022-06-07 22:04  伊万  阅读(56)  评论(0编辑  收藏  举报