Jedis的简单使用

版权声明:转载的话 请标明出处 https://blog.csdn.net/qq_28198181/article/details/84791364

记录了redis的安装及服务器上的简单使用。这次下载是记录使用jedis在java程序中去访问redis服务

目录

1.下载相关文件

2.配置环境

3.编写代码检查


1.下载相关文件

这里需要使用两个包:jedis 和 pool

地址:(https://mvnrepository.com/artifact/redis.clients/jedis/2.7.0 , https://mvnrepository.com/artifact/org.apache.commons/commons-pool2/2.3)

或者我上传的压缩包里:https://download.csdn.net/download/qq_28198181/10827818

2.配置环境

本人使用的idea,在工程里面 File -> Project Structure ->Libraries 添加两个jar包

 下载后的包使用里面的两个jar包比如:

将两个包加载好了后可以看到工程中引用了。

这个时候可以编写代码去看看了

3.编写代码检查

public Class JedisClass{
  public void jedisTest() {
        /*设置ip和端口
       Exception in thread "main"  redis.clients.jedis.exceptions.JedisConnectionException: 
       java.net.SocketTimeoutException: 
        connect timed out
        因为 6379端口没有打开
        注释掉redis.conf 中 bind 127.0.0.1 才可以 bind字段默认为: bind 127.0.0.1 这样只能本 
        机访问redis
        注释掉后有个问题 本地直接打不开 所以 本地远程访问: ./bin/redis-cli -h 192.168.174.128 
        -p 6379
        */
        Jedis jedis = new Jedis("192.168.174.128", 6379);
        //保存数据
        jedis.set("name", "郭二狗");
        //获取数据
        String name = jedis.get("name");
        //关闭
        System.out.println("name:" + name);
        jedis.close();
    }
}

以上写一个方法去连接我的远程redis服务,但是会有几个问题如下

1.timeout问题

这个问题是在我们编写好上述方法后执行的时候报错:

Exception in thread "main"  redis.clients.jedis.exceptions.JedisConnectionException:   java.net.SocketTimeoutException:connect timed out

 这个问题解决方法:

第一步:防火墙中开启6379的端口。

具体步骤:

vim /etc/sysconfig/iptables

然后复制
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
粘贴成
-A INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT
:wq保存

重启防火墙服务
service iptables restart

第二步:在服务器中的redis-conf注释掉bind 127.0.0.1

具体步骤:

vim redis-conf
# bind127.0.0.1  注意不要被前面的注释文档骗了

:wq 保存

重启服务
./bin/redis-cli shutdown
./bin/redis-server ./redis-conf

现在的话 再次运行程序 应该是可以了

我的截图如下:

但是这样还有一个问题:这样的话服务器上客户端无法启动。

2.本地访问服务错误问题

 注释掉redis.conf 中 bind 127.0.0.1 远程可以访问  bind字段默认为: bind 127.0.0.1 这样只能本机访问redis,但是这样后本地访问就会被拒绝找不到127.0.0.1:6379

想了个方法:

当作远程去访问。

使用这个命令就可以了:

./bin/redis-cli -h 192.168.174.128 -p 6379   //-h host -p port

这样就可以使用了:

补充:连接池去访问

 //连接池去连接
    public void jedisCommonPool() {
        //配置连接池对象
        JedisPoolConfig config = new JedisPoolConfig();
        //设置最大连接数
        config.setMaxTotal(30);
        //设置最大空闲连接数
        config.setMaxIdle(10);
        //获得连接池
        JedisPool pool = new JedisPool(config, "192.168.174.128", 6379);
        Jedis jedis = null;

        try {
            jedis = pool.getResource();

            jedis.set("names", "郭二狗子");

            String s = jedis.get("names");

            System.out.println("s:" + s);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (jedis != null) {
                jedis.close();
            }
            if (pool!=null) {
                pool.close();
            }
        }

猜你喜欢

转载自blog.csdn.net/qq_28198181/article/details/84791364