03【Jedis连接Redis服务器】

追求适度,才能走向成功;人在顶峰,迈步就是下坡;身在低谷,抬足既是登高;弦,绷得太紧会断;人,思虑过度会疯;水至清无鱼,人至真无友,山至高无树;适度,不是中庸,而是一种明智的生活态度。

导读:本篇文章讲解 03【Jedis连接Redis服务器】,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

三、Jedis连接Redis服务器

3.1 Jedis简介

Redis不仅是使用命令来操作,现在基本上主流的语言都有客户端支持,比如java、C、C#、C++、php、Node.js、Go等。在官方网站里列一些Java的客户端,有Jedis、Redisson、Jredis、JDBC-Redis、等其中官方推荐使用Jedis和Redisson。 在企业中用的最多的就是Jedis。Jedis提供了完整Redis命令,而Redisson有更多分布式的容器实现。

在这里插入图片描述

3.2 Jedis的使用

3.2.1 引入Maven依赖

<!--连接驱动-->
<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>2.9.0</version>
</dependency>

3.2.2 Jedis连接redis服务端:

@Test
public void test1() {

    // 创建一个Redis连接
    Jedis jedis = new Jedis("localhost");

    System.out.println("连接redis服务端成功!");

    //测试redis服务器是否正在运行
    System.out.println("redis服务器正在运行吗?" + jedis.ping());
    
    // 获取redis服务的配置信息
    System.out.println("redis服务器信息?\n" + jedis.info());
}

注意:

1.防火墙需要放行6379默认端口

2.使用jedis连接redis可能会出现的问题及解决方案

3.2.3 Jedis操作String数据类型

@Test
public void test2() {           // String 操作
    // 创建一个Redis连接
    Jedis jedis = new Jedis("localhost");

    String result = jedis.set("name", "hangman");

    System.out.println(result);

    String name = jedis.get("name");
    System.out.println(name);
}

3.2.3 Jedis操作Hash数据类型

@Test
public void test3() {           // Hash操作
    // 创建一个Redis连接
    Jedis jedis = new Jedis("localhost");

    jedis.hset("user","username","root");
    jedis.hset("user","password","admin");

    String username = jedis.hget("user", "username");
    String password = jedis.hget("user", "username");

    System.out.println(username);
    System.out.println(password);

    // 释放资源
    jedis.close();
}

3.2.4 Jedis操作List数据类型

@Test
public void test4() {           // List操作
    // 创建一个Redis连接
    Jedis jedis = new Jedis("localhost");

    Long result = jedis.lpush("fruits", "apple", "pear", "banana", "tomato");
    System.out.println(result);

    List<String> fruits = jedis.lrange("fruits", 0, -1);
    System.out.println(fruits);
}

3.2.5 Set测试

  • set基本操作
@Test
public void test5() {           // Set操作
    // 创建一个Redis连接
    Jedis jedis = new Jedis("localhost");

    Long result = jedis.sadd("cities", "lanzhou", "fuzhou", "guangzhou", "hangzhou", "zhengzhou");

    System.out.println(result);

    Set<String> cities = jedis.smembers("cities");
    System.out.println(cities);
}
  • 取交集、差集、并集:
@Test
public void test6() {           // Set操作求交集、差集、并集
    // 创建一个Redis连接
    Jedis jedis = new Jedis("localhost");

    jedis.sadd("cities1", "lanzhou", "fuzhou", "guangzhou", "hangzhou", "zhengzhou");
    jedis.sadd("cities2", "meizhou", "guangzhou", "quanzhou", "fuzhou", "ganzhou");

    // [guangzhou, fuzhou]
    Set<String> sinter = jedis.sinter("cities1", "cities2");
    System.out.println(sinter);

    // [zhengzhou, hangzhou, lanzhou]
    Set<String> sdiff = jedis.sdiff("cities1", "cities2");
    System.out.println(sdiff);

    // [fuzhou, guangzhou, hangzhou, lanzhou, meizhou, ganzhou, quanzhou, zhengzhou]
    Set<String> sunion = jedis.sunion("cities1", "cities2");
    System.out.println(sunion);
}

3.2.6 Zset测试

@Test
public void test7() {           // zset操作
    // 创建一个Redis连接
    Jedis jedis = new Jedis("localhost");

    jedis.zadd("students",100,"xiaohui");
    jedis.zadd("students",80,"xiaolan");
    jedis.zadd("students",99,"xiaojun");

    // 获取所有的key
    Set<String> students = jedis.zrange("students", 0, -1);
    System.out.println(students);

    System.out.println();
    Set<Tuple> studentsTuple = jedis.zrangeWithScores("students", 0, -1);

    for (Tuple tuple : studentsTuple) {
        System.out.println("key: "+tuple.getElement());
        System.out.println("score: "+tuple.getScore());
    }

    // 释放资源
    jedis.close();
}

3.3 Jedis 连接池

package com.dfbz.demo01;

import org.junit.Test;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

/**
 * @author lscl
 * @version 1.0
 * @intro:
 */
public class Demo02_Pool {


    @Test
    public void test1() {
        // 创建Jedis连接池配置对象
        JedisPoolConfig config = new JedisPoolConfig();

        // 最大连接数
        config.setMaxTotal(30);
        // 最大空闲连接数
        config.setMaxIdle(10);
        // 最小空闲连接数
        config.setMinIdle(5);
        // 最长等待毫秒数
        config.setMaxWaitMillis(3000);

        // 创建一个Jedis连接池
        JedisPool jedisPool = new JedisPool(config, "127.0.0.1", 6379);

        for (int i = 1; i <=31; i++) {
            Jedis jedis = jedisPool.getResource();
            if (i == 20) {
                jedis.close();          // 将连接归还到连接池
            }
            System.out.println(jedis);
        }

        jedisPool.close();          // 释放资源
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/131736.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!