Redis本身提供了Java支持,这个组建是jedis,要想在redis的编程开发,需要通过maven获取该组建,
要使用Redis数据库,我们首先得测试一下能否正常连接吧,连接都连不上谈什么操作数据库。
1.第一步创建一个maven项目:maven项目怎么创建,这个自己去学吧。
创建好maven项目后:进入maven仓库找到jedis对应得依赖,我这里使用得是最新版本的jedis的maven依赖
添加完依赖之后,开始代码的编写:
package com.ht.jedis;
import redis.clients.jedis.Jedis;
public class jedisdemo {
public static final String REDIS_HOST = "阿里云ip"; //主机地质
public static final Integer REDIS_PORT = 6379; //端口号
public static final String REDIS_AUTH = "redis验证密码"; //认证密码
public static void main(String []args){
Jedis jedis = new Jedis(REDIS_HOST,REDIS_PORT);
jedis.auth(REDIS_AUTH);
System.out.println(jedis.ping());
jedis.close();
}
}
执行后控制台打印PONG,那么恭喜你,说明redis数据库连接成功
1.设置字符串数据
set操作(默认的连接上面已经给出这里就不添加)
jedis.set("user_java","hello");
System.out.println(jedis.get("user_java"));
我们通过可视化redis查看发现数据已经被设置。
2.设置有效时间的数据
jedis.setex("code-huting",3,"7565");
System.out.println("立即获取数据");
System.out.println(jedis.get("code-huting"));
Thread.sleep(3500);
System.out.println("间隔3.5秒后获取数据");
System.out.println(jedis.get("code-huting"));
运行结果
3.操作hash数据
jedis.hset("user-admin","name","胡挺");
jedis.hset("user-admin","age","18");
System.out.println(jedis.hget("user-admin", "name"));
System.out.println(jedis.hget("user-admin", "age"));
4.操作list数据
jedis.lpush("user-gg", "张三","李四","王麻子");
List all = jedis.lrange("user-gg", 0, -1);
System.out.println(all);
5.操作set数据
jedis.sadd("user-customer", "张山","孙悟空","邓紫棋","王思聪");
jedis.sadd("user-master", "孙悟空","邓紫棋","李氏","赵氏孤儿");
jedis.sinter("user-customer","user-master"); //求交集
Set all = jedis.sinter("user-customer","user-master");
System.out.println(all);
运行结果
6.操作SortSet数据
Map map = new HashMap();
map.put("pid-1-1", 1.0);
map.put("pid-1-2", 2.0);
map.put("pid-2-1", 5.0);
jedis.zadd("user-tiems", map);
jedis.zrangeByScore("user-tiems", 1.0, 5.0);
Set alli = jedis.zrangeByScore("user-tiems", 1.0, 5.0);
System.out.println(alli);
Set all = jedis.zrangeByScoreWithScores("user-tiems", 1.0, 5.0);
Iterator iter = all.iterator();
while(iter.hasNext()){
Tuple tuple = iter.next();
System.out.println("元素名称"+tuple.getElement()+"分数"+tuple.getScore());
}
运行结果:
7.keys *的使用(在以后的开发中经常用到)
Set keys = jedis.keys("user-*");
System.out.println(keys);
运行结果:
package com.ht.jedis;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public class jedisdemo {
public static final String REDIS_HOST = "120.79.84.15"; //主机地质
public static final Integer REDIS_PORT = 6379; //端口号
public static final String REDIS_AUTH = "huting666"; //认证密码
public static final Integer TIEMOUT = 1000; //设置redis的超时连接时间
public static final Integer MAX_TOTAL = 1000; //最大连接数
public static final Integer MAX_IDLE = 200; //空闲连接数
public static final Integer MAX_WAIT_MILLIS = 1000; //最大连接等待时间
public static final Boolean TEST_ON_BORROW = true; //是否进行连接测试,以保证返回的连接为可用连接
public static void main(String []args) throws InterruptedException{
//首先想使用Jedis连接池,则必须有个类来保存连接信息。
JedisPoolConfig poolConfig = new JedisPoolConfig();
poolConfig.setMaxTotal(MAX_TOTAL); //最大连接数
poolConfig.setMaxIdle(MAX_IDLE); //空闲连接数
poolConfig.setMaxWaitMillis(MAX_WAIT_MILLIS); //最大连接等待时间
poolConfig.setTestOnBorrow(TEST_ON_BORROW); //是否进行连接测试,以保证返回的连接为可用连接
JedisPool pool = new JedisPool(poolConfig, REDIS_HOST,REDIS_PORT,TIEMOUT,REDIS_AUTH);
Jedis jedis = pool.getResource();
System.out.println(jedis.get("age"));
//操作
jedis.close();
pool.close();
}
}
运行结果: