java使用jedis访问CentOS中的redis

时间:2021-06-19 17:28:05

pom.xml

<dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
        <version>2.7.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-pool2</artifactId>
        <version>2.2</version>
    </dependency>

java代码:

package jedismaven;

import org.junit.Test;

import redis.clients.jedis.Jedis;

public class JedisDemo1 {
    
    @Test
    public void test(){
        Jedis jedis=new Jedis("192.168.123.128",6379);
        //Jedis jedis=new Jedis("127.0.0.1",6379);
        jedis.set("name", "思思博士");
        String value= jedis.get("name");
        System.out.println(value);
        jedis.close(); } }

测试结果连接超时

java使用jedis访问CentOS中的redis

这里是因为CentOS 默认6379端口是没有打开的,需要修改防火墙。

# cd /etc/sysconfig

# ls  查看是否有iptables文件,如果没有执行下面命令

# yum install -y iptables-services

# vim iptables

添加一行

java使用jedis访问CentOS中的redis

退出编辑

# service iptables restart

重新执行java文件

java使用jedis访问CentOS中的redis

使用连接池访问redis

/**
     * 连接池方式连接
     */
    @Test
    public void demo2(){
        //获得连接池的配置对象
        JedisPoolConfig config=new JedisPoolConfig();
        //最大连接数
        config.setMaxTotal(30);
        //最大空闲连接数
        config.setMaxIdle(10);

        //获得连接池
        JedisPool jedisPool=new JedisPool(config, "192.168.123.128", 6379);
        //获得核心对象
        Jedis jedis=null;
        try {
            //通过连接池获得对象
            jedis=jedisPool.getResource();
            //设置数据
            jedis.set("name", "思思博士1");
            //获得数据
            String value=jedis.get("name");
            System.out.println(value);
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            if(jedis!=null){
                jedis.close();
            }
            if(jedisPool!=null){
                jedisPool.close();
            }
        }
    }