三种获取redis的连接,以及redis_String类型演示(适合新手)

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();


    }
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值