0>确保redis进程服务开启
1>第一种:直接获取redis连接,通过redis.()方法测试连接,如果返回PONG则证明连接正常
//1> jedis的入门代码案例,测试连接
@Test
public void test01(){
//1. 获取java连接 redis的连接对象
Jedis jedis = new Jedis("node1", 6379);
//2. 执行相关操作
String ping = jedis.ping();
System.out.println(ping); //返回PONG,说明连接成功
//3. 释放资源
jedis.close();
}
2>第二种:通过redis连接池获取redis连接,创建连接池的时候需要指定参数,
setmaxTotal(最大连接数),
setMaxIdle(不繁忙时最大连接数),
setMinIdle(不繁忙时最少连接数);
//2> jedis连接池相关操作
@Test
public void test02(){
//1. 创建连接池对象(需要通过配置指定连接池各种情况下有多少连接)
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(50); //连接池最大有多少连接
config.setMaxIdle(25); //不繁忙时最多有多少个
config.setMinIdle(10); //不繁忙时最少有多少个
JedisPool jedisPool = new JedisPool(config, "node1", 6379);
//2. 从连接池获取一个连接对象
Jedis jedis = jedisPool.getResource();
//3. 执行相关操作
System.out.println(jedis.ping());
//4. 释放资源
jedis.close();
}
3>自定义RedisUtils,利用静态代码块使连接池随着类的加载只加载一次,防止每次想创建连接的时候都得先构建连接池浪费资源;
public class JedisUtils {
private static JedisPool jedisPool;
//构造方法私有化
private JedisUtils(){}
static {
//静态代码块:随着类的加载而加载,一般只会加载一次
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(50); //连接池最大有多少连接
config.setMaxIdle(25); //不繁忙时最多有多少个
config.setMinIdle(10); //不繁忙时最少有多少个
jedisPool = new JedisPool(config, "node1", 6379);
}
//提供方法获取jedis连接对象
public static Jedis getJedis(){
return jedisPool.getResource();
}
}
3.1>测试工具类
//3> 测试工具类
@Test
public void test03(){
//1. 从工具类获取连接
Jedis jedis = JedisUtils.getJedis();
//2. 执行相关操作(测试连接)
System.out.println(jedis.ping());
//3. 释放资源(归还)
jedis.close();
}
4> redis的五种数据类型
字符串:String
特点: 存储所有的字符和字符串
应用场景: 做缓存使用
哈希 :hash
特点: 相当于java中hashMap集合
应用场景: 可以存储javaBean对象, 使用场景不多,可被String替代
list:集合
特点: 相当于java中linkList, 是一个链表的结构
应用场景: 做任务队列,在java中客户端提供了线程安全获取集合数据的方式
set :集合
特点: 唯一, 无序
应用场景: 集合运算,例如去重复的操作
应用场景: 一般用来做排行榜
有序set集合: sorted set
特点:唯一, 有序
4.1> 使用jedis操作redis_String(String类型)
//4.使用jedis操作redis_string
@Test
public void test04() throws Exception{
//1. 从工具类获取连接
Jedis jedis = JedisUtils.getJedis();
//2. 执行相关操作,(操作redis中String类型)
String ping = jedis.ping();
if ("PONG".equalsIgnoreCase(ping)){ //进去说明正常连接到redis
//2.1 设置数据
jedis.set("name","索隆");
jedis.set("age","25");
//2.2 获取数据
String name = jedis.get("name");
String age = jedis.get("age");
System.out.println(name+" "+age);
System.out.println("-----------------------------");
//2.3 自增 +1
jedis.incr("age");
jedis.incr("age");
jedis.incr("age");
jedis.incr("age");
//2.4 自减 -1
jedis.decr("age");
jedis.decr("age");
//2.5 获取age的值
System.out.println("年龄为:"+jedis.get("age"));
System.out.println("------------------------------");
//2.6 设置过期时间: 为新创建的key设置过期时间 setex
jedis.setex("birthday",10,"1997-11-11");
//2.7 获取有效时间 :ttl
while(jedis.exists("birthday")){ //进来就说明还存在
Long ttl = jedis.ttl("birthday");
System.out.println("有效时间还有" + ttl);
//睡眠
Thread.sleep(1000);
}
}
//3. 释放资源(归还)
jedis.close();
}
到此这篇关于Java三种获取redis的连接及redis_String类型演示(适合新手)的文章就介绍到这了