文章目录
1:Jedis导包
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.2.0</version>
</dependency>
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<String> 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<String> 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<String> 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<String> 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<String,String> map = new HashMap<>();
map.put("name","李四");
map.put("age","23");
jedis.hset("hash2",map);
Map<String, String> hash1 = jedis.hgetAll("hash1");
System.out.println(hash1);
Map<String, String> 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<String> 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;
/**
* Description:
* 要求:
* 1、输入手机号,点击发送后随机生成6位数字码,2分钟有效
* 2、输入验证码,点击验证,返回成功或失败
* 3、每个手机号每天只能输入3次
* Date: 2022/3/5 - 上午 1:29
* author: wangkanglu
* version: V1.0
*/
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("失败");
}
}
}
&spm=1001.2101.3001.5002&articleId=123288560&d=1&t=3&u=ea94438ee476450ba97dd0d5fb6f24f8)
1059

被折叠的 条评论
为什么被折叠?



