评论

收藏

[NoSQL] #yyds干货盘点# redis | 十三、jedis基本命令实践

数据库 数据库 发布于:2021-12-09 14:25 | 阅读数:585 | 评论:0

零、环境准备

1. 创建maven项目jedisdemo
   DSC0000.png

2. maven配置文件修改
  新增jedis引入jar包引入
base  <dependencies>    <!-- https://mvnrepository.com/artifact/redis.clients/jedis -->    <dependency>      <groupId>redis.clients</groupId>      <artifactId>jedis</artifactId>      <version>3.3.0</version>    </dependency>    <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->    <dependency>      <groupId>com.alibaba</groupId>      <artifactId>fastjson</artifactId>      <version>1.2.74</version>    </dependency>    <dependency>      <groupId>junit</groupId>      <artifactId>junit</artifactId>      <version>4.12</version>      <scope>test</scope>    </dependency>  </dependencies
3. 在test包创建测试类

一、jedis简单连接
  jedis构造函数有许多种 DSC0001.png   选用ip和端口构造函数
base  @Test  public void testPing(){    Jedis jedis = new Jedis("127.0.0.1", 6379);    System.out.println("连接正常!" + jedis.ping());    jedis.close();
  输出结果如下: DSC0002.png

二、jedis详细连接
  详细连接采用jedispool连接池进行获取jedis实例,详细配置如下:
baseimport org.junit.After;import org.junit.Before;import org.junit.Test;import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisPool;import redis.clients.jedis.JedisPoolConfig;public class JedisTest2 {  // 连接地址  final String ADDR = "127.0.0.1";  // 连接端口  final int PORT = 6379;  // 验证密码  final String AUTH = "123456";  // 连接实例的最大连接数  final int MAX_ACTIVE = 1024;  // 控制一个pool最多有多少个状态为idle(空闲的)的jedis实例  final int MAX_IDLE = 200;  // 等待可用连接的最大时间,单位毫秒,默认值为-1,表示永不超时。如果超过等待时间,则直接抛出JedisConnectionException  final int MAX_WAIT = 10000;  // 连接的超时时间  final int TIME_OUT = 10000;  // 在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的;  final boolean TEST_ON_BORROW = true;  //数据库模式是16个数据库 0~15   final int DEFAULT_DATABASE = 0;  JedisPool jedisPool = null;  /**   * jedis初始化   */  @Before  public void jedisInitTest(){    try{      JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();      jedisPoolConfig.setMaxTotal(MAX_ACTIVE);      jedisPoolConfig.setMaxIdle(MAX_IDLE);      jedisPoolConfig.setMaxWaitMillis(MAX_WAIT);      jedisPoolConfig.setTestOnBorrow(TEST_ON_BORROW);      // 带密码进行创建jedispool//    JedisPool jedisPool = new JedisPool(jedisPoolConfig, ADDR, PORT, TIME_OUT, AUTH, DEFAULT_DATABASE);      jedisPool = new JedisPool(jedisPoolConfig, ADDR, PORT, TIME_OUT, null, DEFAULT_DATABASE);    }catch (Exception e){      e.printStackTrace();    }  }  /**   * 获取jedis实例   */  @Test  public void jedisTest(){    try {      if (null != jedisPool){        Jedis resource = jedisPool.getResource();        System.out.println(resource.ping());      }    }catch(Exception e){      e.printStackTrace();    }  }  /**   * 关闭jedispool资源   */  @After  public void jedisCloseTest(){    if (null != jedisPool){      jedisPool.close();    }  }
输出结果如下 DSC0003.png

三、jedis基本命令实践
  根据jedis进行练习基本命令,string、list、set、hash、zset等命令。
base  private Jedis jedis;  /**   * 前置连接   */  @Before  public void connectTest(){    jedis = new Jedis("127.0.0.1", 6379);  }  /**   * string练习   */  @Test  public void stringTest(){    Set<String> keys = jedis.keys("*");    for (String str : keys) {      System.out.println(str);    }    Boolean hello = jedis.exists("hello");    System.out.println(hello);    jedis.set("hello", "world");    String hello1 = jedis.get("hello");    System.out.println(hello1);    jedis.del("hello");  }  /**   * list练习   */  @Test  public void listTest(){    jedis.flushDB();    jedis.lpush("test_list", "two", "three");    List<String> test_list = jedis.lrange("test_list", 0, -1);    for (String li :test_list) {      System.out.println(li);    }    jedis.lrem("test_list", 1, "two");  }  /**   * set练习   */  @Test  public void setTest(){    jedis.sadd("one");    jedis.sadd("two", "three");    Set<String> one = jedis.smembers("one");    for (String str: one) {      System.out.println(str);    }    jedis.srem("one");  }  /**   * hash练习   */  @Test  public void hashTest(){    Map<String, String> map = new HashMap<String, String>();    map.put("hh", "kk");    jedis.hset("hello", map);    String hget = jedis.hget("hello", "hh");    System.out.println(hget);    jedis.hdel("hello");  }  /**   * zset练习   */  @Test  public void zsetTest(){    jedis.flushDB();    jedis.zadd("hello", 12, "world");    Set<String> hello = jedis.zrange("hello", 0, -1);    for (String str : hello) {      System.out.println(str);    }    jedis.zrem("hello");  }  /**   * 后置关闭   */  @After  public void closeTest(){    if (null != jedis){      jedis.close();    }
四、jedis事务
  事务开启,操作入队,执行事务!如果事务执行失败,进行放弃事务!
base  @Test  public void testPing(){    Jedis jedis = new Jedis("127.0.0.1", 6379);    jedis.flushDB();    Transaction multi = jedis.multi();    try{      multi.set("hello", "world");      multi.set("nums", "one");      multi.exec();    }catch (Exception e){      multi.discard();      e.printStackTrace();    }finally {      String hello = jedis.get("hello");      System.out.println(hello);      jedis.close();    }


关注下面的标签,发现更多相似文章