前言: 👏作者简介:我是笑霸final,一名热爱技术的在校学生。 📝个人主页:个人主页1 || 笑霸final的主页2 📕系列专栏:本文写在java专栏 | | 后端专栏 📧如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀 🔥如果感觉博主的文章还不错的话,👍点赞👍 + 👀关注👀 + 🤏收藏🤏
Jedis所需要的jar包
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.2.0</version>
</dependency>
7.2.连接Redis注意事项
禁用Linux的防火墙:Linux(CentOS7)里执行命令 systemctl stop/disable firewalld.service redis.conf中注释掉bind 127.0.0.1 ,然后 protected-mode no
链接超时解决方案
1.注释掉 bind 127.0.0.1 可以在 vim redis.conf 后进入指令模式(shift +:) 然后输入:/单词 快速找到单词的位置 == 2.修改protected-mode== 在 redis.conf 中找到 protected-mode 将后面的 yes 改为 no == 3.修改daemonize== 在 redis.conf 中找到 daemonize 将后面的 no 改为 yes 4.修改密码(requirepass foobared) 在 redis.conf 中找到 requirepass foobared ,可在下面添加 requirepass 你的密码 执行完以上操作后进入指令模式 wq 保存退出 5云服务器记得在安全组开放端口 有宝塔得宝塔也要开放端口
二、重启redis 1.关闭redis 在 redis-cli 所在的目录下输入: redis-cli -a 密码 进入到 redis 指令模式,输入: shutdown 然后再输入: exit 2.启动redis 在 redis-server 所在的目录下输入: redis-server redis.conf所在目录/redis.conf 可以通过指令 ps aux | grep redis 查看redis状态 开放端口: firewall-cmd --add-port=6379/tcp --permanent 重启防火墙生效
8.Jedis_实例
要求: 1、输入手机号,点击发送后随机生成6位数字码,2分钟有效 2、输入验证码,点击验证,返回成功或失败 3、每个手机号每天只能输入3次
思考:
- =思路==
* 1.随机密码可以用random * 验证码2分钟有效可以把验证码放入redis 设置过期时间120 * 2.验证问题可以比较redis和输入比较 * 3.每个手机号每天只能输入三次 * 用incr 每次发送后+1 大于2时就不能发送了 */
代码:
package com.xbfinal.jedis;
import redis.clients.jedis.Jedis;
import java.util.Random;
public class PhoneCode {
public static void main(String[] args) {
for(int i=0;i<4;i++){
System.out.println("第"+(i+1)+"次执行得结果:");
final String Code = verifyCode("13555555557");
getRedisCode("13555555557","111111");
getRedisCode("13555555557",Code);
System.out.println("===========================");
}
}
public static String getCode(){
final Random random = new Random();
final int i = 100000+random.nextInt(1000001-100000);
return Integer.toString(i);
}
public static String verifyCode(String phone){
final Jedis jedis = new Jedis("xxx.xxx.xxx.xxx",6379);
final String auth = jedis.auth("xxxx");
String countKey="verifyCode"+phone+":count";
String codeKey="verifyCode"+phone+":code";
final String count = jedis.get(countKey);
if(count==null){
jedis.setex(countKey,24*62*62,"1");
}else if(Integer.parseInt(count) <=2){
jedis.incr(countKey);
}else{
System.out.println("今天发送次数 超过3次 明天再来吧");
jedis.close();
}
final String vcode = getCode();
jedis.setex(codeKey,2*60,vcode);
System.out.println("输入手机号时得验证码:"+vcode);
jedis.close();
return vcode;
}
public static void getRedisCode(String phone,String code){
String countKey="verifyCode"+phone+":count";
String codeKey="verifyCode"+phone+":code";
final Jedis jedis = new Jedis("101.200.230.213",6379);
final String auth = jedis.auth("0615");
final String RedisCode = jedis.get(codeKey);
if(RedisCode.equals(code)){
System.out.println("验证成功");
}else{
System.out.println("验证失败");
}
jedis.close();
}
}
运行截图
|