Redis模拟手机验证码
引入依赖
< dependencies>
< dependency>
< groupId> redis.clients</ groupId>
< artifactId> jedis</ artifactId>
< version> 3.6.3</ version>
</ dependency>
< dependency>
< groupId> junit</ groupId>
< artifactId> junit</ artifactId>
< version> 4.12</ version>
</ dependency>
< dependency>
< groupId> org.slf4j</ groupId>
< artifactId> slf4j-simple</ artifactId>
< version> 1.7.25</ version>
< scope> compile</ scope>
</ dependency>
</ dependencies>
package jedis ;
import redis. clients. jedis. Jedis ;
import java. util. Random ;
public class PhoneCode {
public static void main ( String [ ] args) {
verifyCode ( "123" ) ;
getRedisCode ( "123" , "958367" ) ;
}
public static String getCode ( ) {
Random random = new Random ( ) ;
StringBuffer sb = new StringBuffer ( ) ;
for ( int i = 0 ; i < 6 ; i++ ) {
int rand = random. nextInt ( 10 ) ;
sb. append ( rand) ;
}
return new String ( sb) ;
}
public static void verifyCode ( String phone) {
Jedis jedis = new Jedis ( "127.0.0.1" , 6379 ) ;
String countKey = "VerifyCode" + phone+ ":count" ;
String codeKey = "VerifyCode" + phone+ ":code" ;
String count = jedis. get ( codeKey) ;
if ( count == null ) {
jedis. setex ( codeKey, 24 * 60 * 60 , "1" ) ;
jedis. setex ( countKey, 24 * 60 * 60 , "1" ) ;
} else if ( Integer . parseInt ( count) <= 2 ) {
jedis. incr ( codeKey) ;
} else {
System . out. println ( "不能再发送" ) ;
jedis. close ( ) ;
}
String vcode = getCode ( ) ;
jedis. setex ( codeKey, 120 , vcode) ;
jedis. close ( ) ;
}
public static void getRedisCode ( String phone, String code) {
Jedis jedis = new Jedis ( "127.0.0.1" , 6379 ) ;
String codeKey = "VerifyCode" + phone+ ":code" ;
String redisCode = jedis. get ( codeKey) ;
if ( redisCode. equals ( code) ) {
System . out. println ( "成功" ) ;
} else {
System . out. println ( "失败" ) ;
}
jedis. close ( ) ;
}
}