Redis配置文件介绍
两处改动
#bind 127.0.0.1
//注释掉 上面这个允许远程访问
protected-mode no
//yes改为no允许能够允许操控
其他的不重要,
Redis的发布和订阅
1.什么是发布和订阅
Redis发布和订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息,
Redis客户端可以订阅任意数量的频道
2.发布和订阅的实现
//订阅消息,
subscribe messagequeuename
//发布消息,返回的是订阅者的数量
publish messagequeuename value
//
Reids新数据类型
Bitmaps
1.简介
2.命令
setbit users:20220101 1 1
3.数据格式
Redis-Hyperloglog
1.简介
2.命令
Redis -Gespatial
1.简介
2.命令
geoadd china:city 100.56 55.22 shanghai
Jedis操作Redis6
1.引入依赖
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>4.2.0</version>
</dependency>
2.尝试连接
//创建jedis对象
Jedis jedis=new Jedis( "localhost",6379 );
//测试,如果没有密码没有下面这个
jedis.auth( "密码" );
String ping= jedis.ping();
System.out.println(ping);
//返回pong
- 操作一下
public void test01(){
//创建对象
Jedis jedis=new Jedis( "localhost",6379 );
jedis.auth( "325282" );
Set<String> keys=jedis.keys( "*" );
for (String key:keys){
System.out.println(key);
}
}
jedis实例-手机验证码
package com;
import redis.clients.jedis.Jedis;
import java.util.Random;
public class phonecode {
public static void main(String[] args) {
String code= getcode();
String phone="17833332222";
verifycode( phone,code );
getredisCode( phone,code );
}
//生成六位数字验证码
public static String getcode(){
Random random=new Random( );
String code="";
for (int x=0;x<6;x++){
int rand=random.nextInt(10);
code+=rand;
}
return code;
}
//每个手机每天只能发送三次,验证放到redis中,设置过期时间120
public static void verifycode(String phone,String code){
//连接redis
Jedis jedis=new Jedis( "localhost",6379 );
jedis.auth( "325282" );
//拼接key,手机发送次数
String Countkey="VerifyCode"+phone+":count";
//验证码
String CodeKey="VerifyCode"+phone+":code";
//每个手机每天只能发三次
String count=jedis.get( Countkey );
if (count==null){
//设置发送次数。第一次发送
//设置发送次数1
jedis.setex( Countkey,24*60*60,"1" );
}else if (Integer.parseInt( count )<=2){
//发送次数加一
jedis.incr( Countkey );
}else if (Integer.parseInt( count )>2){
System.out.println("今天已经发送次数超过三次");
}
//发送验证码放到redis里面
jedis.setex( CodeKey,120,code );
jedis.close();
}
//验证码校验
public static void getredisCode(String phone,String code){
//连接redis
Jedis jedis=new Jedis( "localhost",6379 );
jedis.auth( "325282" );
String codeKey="VerifyCode"+phone+":code";
String redisCode=jedis.get( codeKey );
//判断
if(redisCode.equals( code )){
System.out.println("成功");
}else {
System.out.println("失败");
}
jedis.close();
}
}