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

 更新时间:2020年12月28日 10:20:31   作者:达拉道·蒂夏  
这篇文章主要介绍了Java三种获取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();
  }

到此这篇关于Java三种获取redis的连接及redis_String类型演示(适合新手)的文章就介绍到这了,更多相关Java获取redis连接内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 设计模式之责任链模式_动力节点Java学院整理

    设计模式之责任链模式_动力节点Java学院整理

    这篇文章主要为大家详细介绍了设计模式之责任链模式的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • java中基本注解的知识点总结

    java中基本注解的知识点总结

    在本篇文章里小编给大家整理的是一篇关于java中基本注解的知识点总结,有需要的朋友们可以跟着学习下。
    2021-06-06
  • mybatis-plus 如何配置逻辑删除

    mybatis-plus 如何配置逻辑删除

    这篇文章主要介绍了mybatis-plus 如何配置逻辑删除,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • Java Web项目中使用Socket通信多线程、长连接的方法

    Java Web项目中使用Socket通信多线程、长连接的方法

    很多时候在javaweb项目中我们需要用到Socket通信来实现功能,在web中使用Socket我们需要建立一个监听程序,在程序启动时,启动socket监听。接下来通过本文给大家介绍Java Web项目中使用Socket通信多线程、长连接的方法,感兴趣的朋友一起学习
    2016-04-04
  • Java Hibernate中的持久化类和实体类关系

    Java Hibernate中的持久化类和实体类关系

    Hibernate是一种Java对象关系映射框架,通过持久化类将Java对象映射到数据库表中。持久化类需要实现无参构造器、具有标识属性和使用注解或XML进行映射。Hibernate通过Session来管理对象的状态,包括临时状态、持久化状态和游离状态
    2023-04-04
  • Java如何跳出当前多重循环你知道吗

    Java如何跳出当前多重循环你知道吗

    这篇文章主要为大家介绍了Java跳出当前多重循环,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • Java实现base64图片编码数据转换为本地图片的方法

    Java实现base64图片编码数据转换为本地图片的方法

    这篇文章主要介绍了Java实现base64图片编码数据转换为本地图片的方法,涉及java编码转换及图片文件生成相关操作技巧,需要的朋友可以参考下
    2018-06-06
  • idea没有services窗口、没有springboot启动项问题

    idea没有services窗口、没有springboot启动项问题

    这篇文章主要介绍了idea没有services窗口、没有springboot启动项问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • springcloud项目占用内存好几个G导致服务器崩溃的问题

    springcloud项目占用内存好几个G导致服务器崩溃的问题

    这篇文章主要介绍了springcloud项目占用内存好几个G导致服务器崩溃的问题,本文给大家分享解决方案供大家参考,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • 从0开始教你开发一个springboot应用

    从0开始教你开发一个springboot应用

    这篇文章主要为大家介绍了从0开始开发一个springboot应用教程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05

最新评论